.ss{position:relative;flex:1;min-width:0}.ss-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;border:1px solid var(--hairline);border-radius:12px;background:#fff;color:var(--text);font:inherit;text-align:left;cursor:pointer}.ss-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ss-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-caret{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.6}.ss-pop{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);display:flex;flex-direction:column;gap:6px;padding:6px;background:#fff;border:1px solid var(--hairline);border-radius:16px;box-shadow:0 12px 32px #11182724}.ss-search{min-height:44px;padding:0 12px;border:1px solid var(--hairline);border-radius:10px;font:inherit}.ss-list{list-style:none;margin:0;padding:0;max-height:min(320px,50vh);overflow-y:auto;outline:none}.ss-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:10px;cursor:pointer}.ss-row.is-active{background:var(--accent-soft);color:var(--accent-ink)}.ss-row[aria-selected=true] .ss-name{font-weight:600}.ss-row.is-new{border-top:1px solid var(--hairline);border-radius:0 0 10px 10px;color:var(--accent-ink);font-weight:600}.ss-scrim{display:none}@media(max-width:600px){.ss-scrim{display:block;position:fixed;inset:0;z-index:59;background:#11182759}.ss-pop{position:fixed;z-index:60;inset:auto 0 0;border-radius:20px 20px 0 0;padding-bottom:max(6px,env(safe-area-inset-bottom))}}.att-status{border:0;margin:0 0 12px;padding:0;min-width:0}.att-row{display:flex;flex-wrap:wrap;gap:8px}.att-btn{min-height:44px}.att-btn[aria-pressed=true]{background:var(--accent-soft, #E8F0FE);border-color:var(--accent, #2563EB);font-weight:700}.att-move{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin-top:8px}.att-move label{display:grid;gap:2px}.att-charge{margin:8px 0 0;color:var(--secondary, #475467);font-size:var(--fs-label, 13px)}.att-left{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;font-weight:600}.att-uah{color:var(--secondary, #475467);font-weight:400}.att-renew{padding:1px 8px;border-radius:999px;background:#fef0c7;color:#7a2e0e;font-size:var(--fs-label, 13px);font-weight:700}.att-chip{padding:0 6px;border-radius:999px;background:#fff;color:#344054;border:1px solid #D0D5DD;font-size:11px;line-height:16px;font-weight:700;white-space:nowrap}.att-chip.is-held{background:#d1fadf;color:#05603a;border-color:#a6f4c5}.att-chip.is-missed{background:#fee4e2;color:#912018;border-color:#fecdca}.cal-block.is-moved,.cal-chip.is-moved{opacity:.65;border-left-style:dashed}.cal-block.is-missed,.cal-chip.is-missed{border-left-color:#d92d20}.att-chip.is-unmarked{background:var(--c-amber-soft, #FFF4D6);color:var(--c-amber-ink, #6B4A00);border-color:#f5d98b}.cal-block.is-unmarked{border-left-color:#d99a00}.att-dot{display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:#d99a00;vertical-align:middle;animation:att-dot-in .2s ease-out}@keyframes att-dot-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.att-dot{animation:none}}.att-move-from{margin:0 0 4px;font-size:13px;color:var(--secondary)}.cal-line .att-chip.is-unmarked{margin-left:auto;flex-shrink:0}.sj{display:grid;gap:6px;margin-bottom:12px}.sj-actions{display:flex;flex-wrap:wrap;gap:8px}.sj-plan{margin:0;color:var(--muted,#5b6472);font-size:.9rem}.sj-notify{display:grid;gap:8px}.sj-text{margin:0;padding:10px 12px;border-left:3px solid var(--line,#cfd6e0);background:var(--surface-2,rgba(0,0,0,.04));border-radius:8px}.rich-text{display:grid;gap:8px;min-width:0}.rich-text .rt-p,.rich-text .rt-example{margin:0;line-height:1.5;overflow-wrap:anywhere}.rich-text .rt-label{font-weight:600}.rich-text .rt-example{padding-left:10px;border-left:3px solid var(--line, #d9dee7)}.rich-text .rt-tr{color:var(--muted, #5b6472)}.rich-text .rt-say{margin:0 4px;min-width:28px;min-height:28px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;font-size:12px}.rich-text .rt-say:focus-visible{outline:2px solid currentColor;outline-offset:1px}.rich-text .rt-list{margin:0;padding-left:20px;display:grid;gap:4px}.rich-text .rt-table-wrap{max-width:100%;overflow-x:auto}.rich-text .rt-table{border-collapse:collapse;min-width:100%}.rich-text .rt-table th,.rich-text .rt-table td{padding:6px 10px;border:1px solid var(--line, #d9dee7);text-align:left;white-space:nowrap}.rich-text .rt-table th{font-weight:600}.rich-text .rt-table tr:nth-child(2n){background:color-mix(in srgb,currentColor 4%,transparent)}:root{--ex-h: 48px;--ex-r: var(--radius-control);--ex-fs: 18px}.bx{display:grid;gap:24px;font-size:18px;line-height:1.5;color:var(--text);max-width:760px}.bx p{color:var(--text)}.bx .bx-small{font-size:var(--fs-meta);color:var(--secondary)}.bx svg{width:22px;height:22px}.bx-media{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.bx-marks{display:flex;gap:8px}.bx-mark{padding:4px 12px;border-radius:var(--radius-chip);background:var(--c-violet-soft);color:var(--c-violet-ink);font-size:var(--fs-label);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.bx-mark.is-soft{background:var(--page);color:var(--secondary);text-transform:none;letter-spacing:0}.bx-image{display:block;max-width:100%;max-height:220px;border-radius:16px;object-fit:cover;border:1px solid var(--hairline)}.bx-fig{display:grid;gap:4px;justify-items:start;max-width:100%;margin:0}.bx-credit{display:inline-block;padding:4px 0;font-size:12px;line-height:1.3;color:var(--secondary);text-decoration:none}.bx-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}.bx-emoji{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 16px;width:100%;min-height:96px;padding:12px 16px;border-radius:16px;font-size:56px;line-height:1.15;-webkit-user-select:none;user-select:none}.bx-emoji.is-many{font-size:44px}.bx-emoji.is-blue{background:var(--c-blue-soft)}.bx-emoji.is-violet{background:var(--c-violet-soft)}.bx-emoji.is-coral{background:var(--c-coral-soft)}.bx-emoji.is-teal{background:var(--c-teal-soft)}.bx-emoji.is-green{background:var(--c-green-soft)}.bx-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:96px;padding:12px 16px;border:1px dashed var(--hairline);border-radius:16px;background:var(--page);color:var(--secondary);font-size:var(--fs-meta)}.bx-placeholder svg{width:28px;height:28px}.ex-foot{display:grid;gap:8px;margin-top:16px}.ex-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 16px;min-height:56px}.ex-btn{display:inline-flex;align-items:center;justify-content:center;min-width:96px;min-height:var(--ex-h);padding:8px 16px;border:1px solid #D0D5DD;border-radius:var(--ex-r);background:var(--surface);color:var(--accent-ink);font:inherit;font-size:16px;font-weight:700;line-height:1.2;box-shadow:0 3px #d0d5dd;cursor:pointer;transition:transform .1s,box-shadow .1s}.ex-btn:hover:not(:disabled){background:var(--accent-soft)}.ex-btn:active:not(:disabled){transform:translateY(3px);box-shadow:none}.ex-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ex-btn:disabled{opacity:.55;box-shadow:none;cursor:default}.ex-btn.is-primary{min-width:144px;border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 3px 0 var(--accent-edge)}.ex-btn.is-primary:hover:not(:disabled){background:#1a64bd;border-color:#1a64bd}.ex-btn.is-primary:active:not(:disabled){box-shadow:none}.ex-btn.is-primary:disabled{border-color:#e4e7ec;background:#e4e7ec;color:#4b5563;opacity:1;box-shadow:none}.ex-btn.is-ghost{border-color:transparent;background:transparent;box-shadow:none}.ex-btn.is-ghost:hover:not(:disabled){background:var(--accent-soft)}.ex-btn.is-ghost[aria-pressed=true]{background:var(--c-amber-soft);color:var(--c-amber-ink)}.ex-btn.is-away{visibility:hidden}.ex-btn.is-locked{opacity:.55;box-shadow:none;cursor:default}.ex-btn.is-locked:hover{background:transparent}.ex-confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.ex-confirm-q{font-weight:700;color:var(--text)}.ex-confirm .ex-btn{min-width:64px}.ex-strip{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:56px;padding:8px 16px;border:1px solid transparent;border-radius:var(--ex-r);font-size:16px;line-height:1.4}.ex-strip strong{font-weight:800}.ex-strip-detail{font-weight:600;overflow-wrap:anywhere}.ex-strip-icon{display:inline-grid;flex:none}.ex-strip-icon svg{width:24px;height:24px}.ex-strip.is-correct{border-color:#bfe3cb;background:var(--c-green-soft);color:var(--c-green-ink)}.ex-strip.is-wrong{border-color:#f5c2c2;background:var(--c-rose-soft);color:var(--c-rose-ink)}.ex-strip.is-shown{border-color:#f3dfa6;background:var(--c-amber-soft);color:var(--c-amber-ink)}.ex-strip.is-info{border-color:#c7ddf7;background:var(--accent-soft);color:var(--accent-ink)}.bx-task{display:grid;gap:16px}.bx-field{display:inline-flex;align-items:center;gap:8px;vertical-align:middle;max-width:100%}.bx .bx-input{width:auto;min-width:5ch;min-height:var(--ex-h);margin:4px;padding:8px 16px;border:1px solid #868E9C;border-radius:var(--ex-r);background:var(--surface);color:var(--text);font-size:var(--ex-fs);font-weight:600;line-height:1.2;text-align:center}.bx .bx-input[inputmode=numeric]{width:56px;min-width:56px;padding:8px 4px}.bx .bx-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1d6fd133;outline:none}.bx .bx-input.is-filled{background:var(--c-teal-soft);border-color:var(--c-teal);color:var(--c-teal-ink)}.bx .bx-input.is-correct{background:var(--c-green-soft);border-color:var(--c-green);color:var(--c-green-ink)}.bx .bx-input.is-wrong{background:var(--c-rose-soft);border-color:#b42318;color:var(--c-rose-ink)}.bx .bx-input.is-key{background:var(--c-amber-soft);border-color:#b97800;color:var(--c-amber-ink)}.bx-flag{display:inline-grid}.bx-flag.is-good{color:var(--c-green-ink)}.bx-flag.is-bad{color:var(--c-rose-ink)}.bx .bx-input.is-blank{background:var(--surface);border-style:dashed;border-color:#868e9c;color:var(--text)}.bx-flag.is-blank{color:var(--secondary);font-weight:700}.bx-unanswered{color:var(--secondary);font-size:var(--fs-meta);font-weight:600}.bx-item.is-blank{border-style:dashed}.bx-lines{display:grid;gap:8px;margin:0;padding:0;list-style:none}.bx-lines li{display:flex;align-items:center;gap:16px}.bx .bx-lines .bx-input{margin:0}.bx-lines .bx-line{flex:1;min-width:0;overflow-wrap:anywhere}.bx-num{display:inline-grid;place-items:center;flex:none;width:56px;height:var(--ex-h);border-radius:var(--ex-r);background:var(--page);color:var(--secondary);font-size:var(--ex-fs);font-weight:800}.bx-items{display:grid;gap:16px}.bx-item{position:relative;display:grid;gap:16px;padding:16px 16px 16px 64px;border:1px solid var(--hairline);border-radius:20px;background:var(--surface)}.bx-item.is-key{border-color:#b97800;background:var(--c-amber-soft)}.bx-badge{position:absolute;left:16px;top:16px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--c-teal-soft);color:var(--c-teal-ink);font-weight:800}.bx-item-head{display:flex;align-items:center;gap:16px}.bx-dialogue{display:grid;gap:8px}.bx-turn{display:flex;align-items:center;gap:8px;min-height:56px;margin:0;line-height:1.5}.bx-who{flex:none;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--page);color:var(--secondary);font-size:14px}.bx-exchange{display:grid;gap:24px}.bx-group{display:grid;gap:16px;padding:16px;border:1px solid var(--hairline);border-radius:20px}.bx-group h3{margin:0;font-size:20px;color:var(--c-teal-ink)}.bx-xrow{display:grid;grid-template-columns:1fr 32px 1fr;align-items:center;gap:8px}.bx-bubble{display:grid;gap:4px;padding:8px 16px;border-radius:16px;background:var(--page);min-height:var(--ex-h);align-content:center}.bx-bubble.is-a{border-bottom-left-radius:4px;background:var(--c-blue-soft);color:var(--c-blue-ink)}.bx-bubble.is-b{border-bottom-right-radius:4px;background:var(--c-teal-soft);color:var(--c-teal-ink)}.bx-alt+.bx-alt{padding-top:4px;border-top:1px dashed currentColor}.bx-arrow{justify-self:center;width:22px;height:22px;background:currentColor;color:var(--secondary);-webkit-mask:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16m-6-6 6 6-6 6'/%3E%3C/svg%3E");mask:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16m-6-6 6 6-6 6'/%3E%3C/svg%3E")}.bx-letter{display:inline-block;padding:0 6px;border-radius:8px;background:var(--surface);color:var(--text);font-weight:800}.bx-answers{display:grid;gap:8px;padding-top:16px;border-top:1px solid var(--hairline)}.bx-answer{display:flex;align-items:center;gap:16px}.bx-flip{display:grid;gap:16px;max-width:520px}.bx-flip-bar{display:flex;align-items:center;justify-content:center;gap:24px}.bx .bx-nav{width:44px;height:44px;border:1px solid var(--hairline);border-radius:50%;background:var(--surface);color:var(--accent-ink);font-size:28px;line-height:1;box-shadow:var(--edge)}.bx .bx-nav:disabled{opacity:.4}.bx-count{min-width:64px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;color:var(--secondary)}.bx-card{display:grid;gap:12px;align-content:center;min-height:260px;padding:24px;border:1px solid var(--hairline);border-radius:24px;background:var(--surface);text-align:center;box-shadow:var(--edge-strong);animation:bx-flip .3s ease-out}.bx-card.is-back{background:var(--c-teal-soft);border-color:var(--c-teal)}.bx-card.is-back.is-bad{background:var(--c-rose-soft);border-color:#b42318}.bx-card-text{font-size:24px;font-weight:700;line-height:1.3}.bx-card-small{font-size:16px;color:var(--secondary)!important}.bx-verdict{display:flex;justify-content:center;align-items:center;gap:8px;margin:0;font-size:20px;font-weight:800;line-height:1.25}.bx-verdict.is-good{color:var(--c-green-ink)}.bx-verdict.is-bad{color:var(--c-rose-ink)}.bx-verdict-icon{display:inline-grid;flex:none}.bx-verdict-icon svg{width:26px;height:26px}.bx-result{display:flex;justify-content:center;align-items:center;gap:8px;margin:0;font-size:18px;font-weight:700}.bx-result.is-good{color:var(--c-green-ink)}.bx-explain{font-size:18px}.bx-tf{display:flex;gap:16px;justify-content:center}.bx-tf .ex-btn{min-width:120px}.bx-flip-tools{display:flex;justify-content:center}@keyframes bx-flip{0%{transform:perspective(900px) rotateY(80deg)}to{transform:perspective(900px) rotateY(0)}}.bx-rule-card{display:grid;gap:16px;padding:20px;border:1px solid var(--hairline);border-radius:20px;background:var(--surface)}.bx-rule-title{margin:0;font-size:24px;color:var(--c-teal-ink)}.bx-table-wrap{overflow-x:auto}.bx-table{width:100%;border-collapse:separate;border-spacing:0;font-size:18px}.bx-table th,.bx-table td{padding:10px 14px;border-bottom:1px solid var(--hairline);text-align:left}.bx-table thead th{font-weight:800;border-bottom:0}.bx-table thead th:first-child{border-top-left-radius:12px}.bx-table thead th:last-child{border-top-right-radius:12px}.bx-table tbody th{font-weight:800}.bx-table .h-blue{background:var(--c-blue-soft);color:var(--c-blue-ink)}.bx-table .h-violet{background:var(--c-violet-soft);color:var(--c-violet-ink)}.bx-table .h-coral{background:var(--c-coral-soft);color:var(--c-coral-ink)}.bx-table .h-teal{background:var(--c-teal-soft);color:var(--c-teal-ink)}.bx-table .h-green{background:var(--c-green-soft);color:var(--c-green-ink)}.bx-table tbody td.h-blue,.bx-table tbody td.h-violet,.bx-table tbody td.h-coral,.bx-table tbody td.h-teal,.bx-table tbody td.h-green{background:none}.bx-uses-head{margin:0;font-weight:700}.bx-uses{margin:0;padding-left:24px;display:grid;gap:6px}.bx .bx-notes-area{min-height:144px;border-radius:var(--ex-r);background:var(--page);font-size:var(--ex-fs)}.bx-pron{display:grid;gap:16px;justify-items:start}.bx-pron-list{display:grid;gap:8px;margin:0;padding:0;list-style:none;counter-reset:pron}.bx-pron-list li{display:flex;align-items:center;gap:16px;counter-increment:pron;font-size:22px;line-height:1.4}.bx-pron-list li:before{content:counter(pron);order:1;flex:none;font-weight:800;color:var(--secondary);min-width:1.2em}.bx-pron-list .ex-audio{order:0}.bx-pron-list .bx-say{order:2}.bx-say u{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-skip-ink:none}.bx-red{color:var(--c-rose-ink);font-weight:800}.bx-notes{position:relative;margin-top:16px;padding:28px 20px 16px;border:1px solid var(--c-teal);border-radius:0 20px 20px;background:var(--c-teal-soft);color:var(--c-teal-ink)}.bx-notes p,.bx-notes li{color:var(--c-teal-ink)}.bx-notes-tab{position:absolute;left:-1px;top:-26px;padding:4px 16px;border:1px solid var(--c-teal);border-bottom:0;border-radius:12px 12px 0 0;background:var(--c-teal-soft);color:var(--c-teal-ink);font-size:var(--fs-label);font-weight:800;letter-spacing:.1em}.bx-notes ul{margin:8px 0 0;padding-left:24px}.bx-rule{margin:0;font-size:20px}@media(max-width:560px){.bx{font-size:17px}.bx-item{padding:16px 8px 16px 56px}.bx-badge{left:8px;top:16px}.bx-xrow{grid-template-columns:1fr;gap:4px}.bx-arrow{transform:rotate(90deg)}.ex-row{gap:8px}.ex-row .ex-btn.is-primary{flex:1 0 100%}.bx-card-text{font-size:22px}.bx-pron-list li{font-size:20px}}@media(prefers-reduced-motion:reduce){.bx-card{animation:none}.ex-btn{transition:none}.ex-btn:active:not(:disabled){transform:none}}.ex-strip:empty{min-height:0;padding:0;border:0}.ex-foot{grid-template-rows:auto;grid-auto-rows:auto}:root{--ev-blue-text: #1557A8;--ev-bg: #F4F6FA;--ev-blue-soft: #E8F2FD;--ev-shadow: 0 8px 24px rgba(17,24,39,.06);--ev-glow: 0 0 0 4px rgba(29,111,209,.16)}progress{display:block;max-width:1120px;margin:0 auto;height:10px;border-radius:999px;background:var(--track)}progress::-webkit-progress-bar{background:var(--track);border-radius:999px}progress::-webkit-progress-value{background:var(--accent);border-radius:999px;transition:width .3s ease}progress::-moz-progress-bar{background:var(--accent);border-radius:999px}.sentence-result{background:var(--ev-bg);border:1px dashed var(--border);border-radius:var(--chip-radius)}.wordlist>div{border-bottom-color:#e5e8ec}.teacher-comment{background:var(--ev-bg)}.lp{--lp-tile-border: #D0D5DD;--lp-tile-edge: #B8BFCA;--lp-ghost: #EEF0F3;--lp-todo: #D0D5DD;--lp-green-edge: #0F5C2C;--lp-red: #B42318;--lp-red-edge: #7A1A12;display:flex;flex-direction:column;max-width:760px;min-height:calc(100dvh - 32px);margin:0 auto;padding-bottom:168px}.lp .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.lp-live{margin-bottom:16px}.lp-top{display:flex;align-items:center;gap:8px}.lp-top .lp-chip{flex:none}.lp-icon{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--radius-control);color:var(--accent-ink)}.lp-icon:hover{background:var(--accent-soft)}.lp-icon:focus-visible,.lp-close:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lp-icon svg{width:24px;height:24px}.lp-top .more-button{min-width:44px;padding:0;background:transparent;border-color:transparent;box-shadow:none;font-size:20px;color:var(--secondary)}.lp-meta{display:flex;align-items:center;gap:8px;min-height:44px;margin:0 0 8px 56px}.lp-title{flex:1;min-width:0;margin:0;font-size:var(--fs-meta);font-weight:600;color:var(--secondary)}.lp-segments:has(>:nth-child(13)){gap:2px}.lp-stage{display:flex;flex:1;flex-direction:column;justify-content:center;padding:16px 0}.lp-stage .lp-card{width:100%}.lp-close{display:inline-grid;place-items:center;flex:none;width:48px;height:48px;border-radius:var(--radius-control);color:var(--secondary)}.lp-close:hover{background:var(--surface);color:var(--text)}.lp-close svg{width:28px;height:28px}.lp-segments{display:flex;flex-direction:row;overflow:visible;flex:1;min-width:0;gap:4px;padding:0;background:none;box-shadow:none;border-radius:0}.lp-seg{flex:1;min-width:0;height:48px;padding:0;border:0;background:none;cursor:pointer;display:grid;align-items:center}.lp-seg-bar{display:block;height:12px;border-radius:999px;background:var(--lp-todo);transition:background .2s}.lp-seg.is-done .lp-seg-bar{background:var(--c-green)}.lp-seg.is-current .lp-seg-bar,.lp-seg.is-done.is-current .lp-seg-bar{background:var(--accent);box-shadow:inset 0 -4px 0 var(--accent-edge)}.lp-seg:hover .lp-seg-bar{filter:brightness(.95)}.lp-seg:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}.lp-count{flex:none;min-width:52px;text-align:right;font-size:var(--fs-body);font-weight:700;color:var(--secondary);font-variant-numeric:tabular-nums}.lp-card{padding:32px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:none}.lp-chip{display:inline-block;align-self:flex-start;margin-bottom:8px;padding:2px 8px;border:0;background:var(--page);color:var(--secondary);font-size:var(--fs-label);font-weight:700}.lp-instruction{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.lp .lp-instruction h2{margin:0;font-size:26px;font-weight:700;letter-spacing:-.01em;line-height:1.25}.ex-audio,.lp-audio{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid #C7DDF7;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);box-shadow:0 2px #c7ddf7;cursor:pointer;transition:transform .1s,box-shadow .1s,background .12s}.ex-audio svg,.lp-audio svg{width:22px;height:22px}.ex-audio:hover,.lp-audio:hover{background:var(--surface);border-color:var(--accent)}.ex-audio:active,.lp-audio:active{transform:translateY(2px);box-shadow:none}.ex-audio:focus-visible,.lp-audio:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lp-answer{margin:24px 0 0;color:var(--text);font-size:var(--ex-fs)}.lp-answer .stimulus,.lp-answer .gap-sentence{margin:0 0 24px;font-size:20px;line-height:56px}.lp-answer .stimulus{line-height:1.6}.lp .tile{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--ex-h);padding:8px 16px;border:1px solid var(--lp-tile-border);border-radius:var(--ex-r);background:var(--surface);color:var(--text);font-size:var(--ex-fs);font-weight:600;line-height:1.2;box-shadow:0 3px 0 var(--lp-tile-edge);transition:transform .08s,box-shadow .08s,background .12s,border-color .12s}.lp .tile:not(.is-selected):not(.is-correct):not(.is-wrong):hover:not(:disabled){transform:none;background:#fcfaf7;border-color:var(--lp-tile-edge)}.lp .tile:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 0 var(--lp-tile-edge)}.lp .tile:disabled{opacity:1;cursor:default}.lp .tile:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lp .tile.is-selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 3px 0 var(--accent-edge)}.lp .tile.is-correct,.lp .tile-line.is-correct{background:var(--c-green-soft);border-color:var(--c-green);color:var(--c-green-ink);box-shadow:0 3px 0 var(--lp-green-edge)}.lp .tile.is-wrong,.lp .tile-line.is-wrong{background:var(--c-rose-soft);border-color:var(--lp-red);color:var(--c-rose-ink);box-shadow:0 3px 0 var(--lp-red-edge)}.lp .tile-mark{display:inline-grid;place-items:center}.lp .tile-mark svg{width:22px;height:22px}.lp .tile kbd{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 4px;border:1px solid var(--lp-tile-border);border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;line-height:1;color:var(--secondary);background:var(--surface)}.lp .tile.is-selected kbd{border-color:var(--accent);color:var(--accent-ink)}.lp .options{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.lp .options .tile{justify-content:flex-start}.lp .options .tile .tile-text{flex:1;text-align:center}.lp .tile.ghost{background:var(--lp-ghost);border-color:transparent;box-shadow:none;color:transparent;-webkit-user-select:none;user-select:none}.lp .tile-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:72px;padding:12px;border:0;border-bottom:2px solid var(--hairline);border-radius:0;background:none;box-shadow:none}.lp .tile-line.is-correct,.lp .tile-line.is-wrong{border-radius:var(--ex-r);border-width:1px;border-style:solid}.lp .tile-line .tile-mark{margin-left:auto}.lp .tile-line-empty{color:var(--secondary);font-size:var(--ex-fs)}.lp .tile-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:24px}.lp .gap-slot{display:inline-block;width:96px;height:var(--ex-h);margin:4px;vertical-align:middle;border-bottom:3px solid var(--lp-tile-edge)}.lp .gap-target{margin:4px;vertical-align:middle}.lp .english-content input,.lp .english-content textarea,.lp .english-content select{min-height:var(--ex-h);padding:8px 16px;border:1px solid var(--lp-tile-border);border-radius:var(--ex-r);background:var(--surface);font-size:var(--ex-fs);font-weight:600;line-height:1.2;box-shadow:inset 0 -3px 0 var(--hairline)}.lp .english-content textarea{width:100%;min-height:144px;font-weight:400;line-height:1.5}.lp .english-content input{width:9em;max-width:100%;margin:4px}.lp .english-content input:focus,.lp .english-content textarea:focus,.lp .english-content select:focus{border-color:var(--accent);outline:3px solid var(--accent-soft)}.lp .english-content input.is-correct{border-color:var(--c-green);background:var(--c-green-soft);color:var(--c-green-ink)}.lp .english-content input.is-wrong{border-color:var(--lp-red);background:var(--c-rose-soft);color:var(--c-rose-ink)}.lp .pair-list label{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:var(--ex-fs);font-weight:600}.lp-hintbtn{margin-top:8px;min-height:48px}.lp-hint{margin:16px 0 0;padding:12px 16px;border-radius:var(--radius-control);background:var(--c-amber-soft);color:var(--c-amber-ink);font-size:var(--fs-body);font-weight:600}.lp-notice:empty{display:none}.lp-bar{position:fixed;z-index:30;left:232px;right:0;bottom:0;padding:16px 24px calc(16px + env(safe-area-inset-bottom));background:var(--surface);border-top:2px solid var(--hairline)}.lp-bar-inner{display:flex;align-items:center;gap:12px;max-width:760px;margin:0 auto}.lp-feedback{display:flex;flex:1;min-width:0;align-items:center;gap:12px}.lp-feedback>div{display:grid;gap:2px}.lp-feedback strong{font-size:20px;font-weight:700}.lp-feedback-answer{font-size:18px;font-weight:600;text-decoration:underline;text-underline-offset:4px}.lp-feedback-icon{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:50%;background:var(--surface)}.lp-feedback-icon svg{width:28px;height:28px}.lp-skip{order:-1;min-height:52px}.lp-bar-actions{display:flex;gap:8px}.lp-bar .button{white-space:nowrap;min-height:52px;padding:12px 24px;font-size:17px;font-weight:700}.lp-bar .button.primary{min-width:160px}.lp-bar .button.primary:disabled{background:#e4e7ec;border-color:#e4e7ec;color:#4b5563;box-shadow:none;opacity:1;cursor:not-allowed}.lp-bar.is-good{background:var(--c-green-soft);border-top-color:#bfe3cb;animation:lp-rise .18s ease-out}.lp-bar.is-good .lp-feedback,.lp-bar.is-good .lp-feedback-icon{color:var(--c-green-ink)}.lp-bar.is-good .button.primary{background:var(--c-green);border-color:var(--c-green);box-shadow:0 3px 0 var(--lp-green-edge)}.lp-bar.is-bad{background:var(--c-rose-soft);border-top-color:#f5c2c2;animation:lp-rise .18s ease-out}.lp-bar.is-bad .lp-feedback,.lp-bar.is-bad .lp-feedback-icon{color:var(--c-rose-ink)}.lp-bar.is-bad .button.primary{background:var(--lp-red);border-color:var(--lp-red);box-shadow:0 3px 0 var(--lp-red-edge)}.lp-bar.is-bad .button.quiet{color:var(--c-rose-ink)}.lp-bar.is-info{background:var(--accent-soft);border-top-color:#c7ddf7}.lp-bar.is-info .lp-feedback,.lp-bar.is-info .lp-feedback-icon{color:var(--accent-ink)}@keyframes lp-rise{0%{transform:translateY(12px);opacity:.6}to{transform:none;opacity:1}}.lp-finish{display:grid;justify-items:center;gap:16px;text-align:center;padding:8px 0}.lp-finish-badge{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--c-amber-soft);color:var(--c-amber-ink)}.lp-finish-badge svg{width:44px;height:44px}.lp .lp-finish h2{margin:0;font-size:28px;font-weight:700}.lp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%}.lp-stat{display:grid;justify-items:center;gap:4px;padding:16px 8px;border:2px solid var(--hairline);border-radius:16px;background:var(--surface)}.lp-stat strong{font-size:24px;font-variant-numeric:tabular-nums;color:var(--text)}.lp-stat>span:last-child{font-size:var(--fs-meta);font-weight:600;color:var(--secondary)}.lp-stat-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px}.lp-stat.good{border-color:#bfe3cb}.lp-stat.good .lp-stat-icon{background:var(--c-green-soft);color:var(--c-green-ink)}.lp-stat.info{border-color:#c7ddf7}.lp-stat.info .lp-stat-icon{background:var(--accent-soft);color:var(--accent-ink)}.lp-stat.star{border-color:#f3dfa6}.lp-stat.star .lp-stat-icon{background:var(--c-amber-soft);color:var(--c-amber-ink)}.lp-finish-actions{display:grid;gap:8px;width:min(100%,320px);margin-top:8px}.lp-finish-actions .button{min-height:52px;font-size:17px;font-weight:700;justify-content:center}.shell{background:var(--ev-bg)}@media(max-width:900px){.lp-bar{left:0;bottom:var(--lp-nav, 69px);padding:12px 16px}.lp{padding-bottom:200px}.no-sidebar .lp-bar{bottom:0}}@media(max-width:600px){.lp-meta{margin-left:0}.lp-card{padding:20px 16px}.lp .lp-instruction h2{font-size:22px}.lp-bar-inner{flex-wrap:wrap}.lp-bar.is-good .lp-feedback,.lp-bar.is-bad .lp-feedback,.lp-bar.is-info .lp-feedback{flex-basis:100%}.lp-bar-actions,.lp-bar-actions .button{flex:1}.lp-bar .button.primary{min-width:0}.lp-stat strong{font-size:20px}}@media(prefers-reduced-motion:reduce){.lp .tile,.ex-audio,.lp-audio,.lp-seg-bar,progress::-webkit-progress-value{transition:none!important}.lp .tile:active:not(:disabled),.ex-audio:active,.lp-audio:active{transform:none!important}.lp-bar.is-good,.lp-bar.is-bad{animation:none}}.lp .english-content .gap-sentence input.gap-input{display:inline-block;height:var(--ex-h);margin:4px;padding:8px 16px;border:1px solid var(--lp-tile-border);border-radius:var(--ex-r);background:var(--surface);box-shadow:inset 0 -3px 0 var(--hairline);font-size:var(--ex-fs);font-weight:600;line-height:1.2;text-align:center;vertical-align:middle;max-width:100%}.lp .english-content .gap-sentence input.gap-input:focus{border-color:var(--accent);background:var(--accent-soft);outline:3px solid var(--accent);outline-offset:2px}.lp .english-content .gap-sentence input.gap-input.is-correct{border-color:var(--c-green);background:var(--c-green-soft);color:var(--c-green-ink)}.lp .english-content .gap-sentence input.gap-input.is-wrong{border-color:var(--lp-red);background:var(--c-rose-soft);color:var(--c-rose-ink)}.dnd-live{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lp .dnd-item{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab}.lp .tile.dnd-item.is-dragging-src{background:var(--lp-ghost)!important;border-color:transparent!important;box-shadow:none!important;color:transparent!important;transform:none!important}.lp .dnd-item.is-dragging-src>*{visibility:hidden}.lp .dnd-item.is-picked{outline:3px dashed var(--accent);outline-offset:3px}.dnd-ghost{box-sizing:border-box;cursor:grabbing;box-shadow:0 12px 24px #11182738;opacity:.96;user-select:none;-webkit-user-select:none}.dnd-ghost *{pointer-events:none}body.dnd-active,body.dnd-active *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.lp .tile-line.is-over,.lp .tile-bank.is-over,.lp .col-box.is-over,.lp .label-slot.is-over,.lp .match-slot.is-over,.lp .gap-slot.is-over,.lp .gap-target.is-over{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:2px}.lp .tile-bank.is-over,.lp .tile-line.is-over{border-radius:var(--ex-r)}.lp .tile.drop-before{box-shadow:-7px 0 0 var(--accent),0 3px 0 var(--lp-tile-edge)}.lp .tile.drop-after{box-shadow:7px 0 0 var(--accent),0 3px 0 var(--lp-tile-edge)}.lp .tile-bank{min-height:56px;padding:4px}.lp .tile-bank .tile,.lp .tile-line .tile,.lp .col-items .tile{max-width:100%}.lp .gap-slot{min-width:96px;border-radius:8px 8px 0 0}.lp .english-content .gap-sentence .tile{font-size:var(--ex-fs)}.lp .match-rows{display:grid;gap:16px}.lp .match-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:16px}.lp .match-left{font-size:var(--ex-fs);font-weight:600;overflow-wrap:anywhere}.lp .match-slot{width:100%;justify-content:space-between}.lp .match-slot.is-empty{border:2px dashed var(--lp-tile-edge);border-radius:var(--ex-r);background:var(--page);box-shadow:none}.lp .match-slot.is-empty.is-ready{border-color:var(--accent)}.lp .match-slot.tile.is-correct{box-shadow:0 3px 0 var(--lp-green-edge)}.lp .col-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-top:24px}.lp .col-box{display:grid;align-content:start;gap:8px;min-height:120px;padding:12px;border:2px dashed var(--lp-tile-edge);border-radius:16px;background:var(--page)}.lp .col-box.is-ready{border-color:var(--accent)}.lp .col-head{font-size:var(--fs-body);font-weight:700;color:var(--secondary)}.lp .col-items{display:flex;flex-wrap:wrap;gap:8px}.lp .label-slot{display:grid;place-items:center;min-height:var(--ex-h);margin:16px 0;padding:8px 16px;border:2px dashed var(--lp-tile-edge);border-radius:var(--ex-r);background:var(--page);color:var(--secondary);font-size:var(--ex-fs);font-weight:600}.lp .label-slot.is-filled{border-style:solid;background:var(--accent-soft);color:var(--accent-ink)}.lp .label-slot.is-correct{border-style:solid;background:var(--c-green-soft);color:var(--c-green-ink);border-color:var(--c-green)}.lp .label-slot.is-wrong{border-style:solid;background:var(--c-rose-soft);color:var(--c-rose-ink);border-color:var(--lp-red)}@media(max-width:600px){.lp .match-row{grid-template-columns:minmax(0,1fr);gap:8px}}.lp .lp-top .lp-chip{margin:0;padding:2px 10px;border:1px solid var(--hairline);background:var(--surface);color:var(--secondary);font-size:var(--fs-label);line-height:1.6}.lp .lp-hintbtn{min-height:44px;margin:8px 0 0 -8px;padding:8px}.lp.lp-inline{padding-bottom:32px}.lp.lp-inline .lp-stage{justify-content:flex-start}.lp-meta-skip{flex:none;min-height:44px;padding:0 12px;font-size:var(--fs-body);font-weight:600}@media(max-width:900px){.lp.lp-inline{padding-bottom:calc(var(--lp-nav, 69px) + 32px)}}@media(max-width:600px){.lp.lp-inline .lp-meta{flex-wrap:wrap;gap:0 8px}.lp.lp-inline .lp-title{flex-basis:100%}}.view-switch{display:flex;align-items:center;gap:8px;margin-left:auto}.seg-links{display:inline-flex;padding:2px;gap:2px;border:1px solid var(--border);border-radius:var(--control-radius);background:var(--background)}.seg-links a{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border-radius:10px;color:var(--secondary);font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap}.seg-links a:hover{color:var(--text)}.seg-links a[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.view-edit{gap:6px;white-space:nowrap}.view-edit svg{width:20px;height:20px}@media(max-width:640px){.view-edit-text{display:none}.view-edit{min-width:44px;padding:0 10px}.seg-links a{padding:0 10px}}.lp-note{margin:0 0 12px;padding:0 16px;border-radius:14px}.lp-note summary{display:flex;align-items:center;min-height:44px;font-weight:700;cursor:pointer}.lp-note summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}.lp-note p{margin:0 0 12px}.lp-fix{display:grid;gap:6px;margin:12px 0 0;padding:10px 12px;border-radius:12px;background:var(--c-amber-soft);color:var(--c-amber-ink)}.lp-fix p{margin:0;font-size:var(--fs-body)}.lp-fix-badge{display:inline-flex;align-items:center;gap:6px;width:fit-content;font-weight:800}.lp-fix-badge svg{width:20px;height:20px}.lp-fix.is-fixed,.lp-fix.is-ok{padding:0;background:none;color:var(--secondary)}.lp-fix.is-ok .lp-fix-badge,.lp-fix.is-fixed .lp-fix-badge{font-weight:600;color:var(--c-green-ink)}.lp-seg.is-fix .lp-seg-bar{background:#b97800}.lp-seg.is-fix.is-current .lp-seg-bar{background:var(--accent)}.lp-submit-why{max-width:36ch;margin:0;color:var(--secondary);font-size:var(--fs-body)}.lp-jumps li:before,.lp-jumps li:after{content:none!important}.lp-jumps{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:0;padding:0;list-style:none}.lp-jump{min-width:44px;min-height:44px;padding:0 12px;border:1px solid #F3DFA6;border-radius:999px;background:var(--c-amber-soft);color:var(--c-amber-ink);font:inherit;font-size:17px;font-weight:800;cursor:pointer}.lp-jump:hover{background:var(--surface);border-color:#b97800}.lp-jump:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lp-finish-actions .lp-submit-off[aria-disabled=true]{color:var(--secondary);cursor:default;text-decoration:none}.lp-finish-actions .lp-submit-off[aria-disabled=true]:hover{background:transparent}.lp .english-content .gap-sentence input.gap-input.is-blank{border-style:dashed;border-color:var(--secondary);background:var(--surface);color:var(--text)}.gap-blank{display:inline-grid;place-items:center;min-width:22px;color:var(--secondary);font-weight:700}.lp .gap-sentence .tile-mark{vertical-align:middle}.lp .tile-line-stack{display:grid;flex:1 1 0;min-width:0}.lp .tile-line-stack>*{grid-area:1 / 1;display:flex;flex-wrap:wrap;align-items:center;align-content:flex-start;gap:8px;min-width:0}.lp .tile-line-size{visibility:hidden;pointer-events:none}.lp .tile-size{display:inline-flex;align-items:center;justify-content:center;min-height:var(--ex-h);padding:8px 16px;border:1px solid transparent;font-size:var(--ex-fs);font-weight:600;line-height:1.2;box-shadow:0 3px 0 transparent;max-width:100%}.lp .tile-size:after{content:attr(data-text)}.lp-watch-banner{margin:0 0 12px;padding:10px 16px;border-radius:12px;background:var(--c-blue-soft, #E6F0FC);color:var(--text);font-weight:600}@media(max-width:640px){.wordlist>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center}.wordlist>div>strong,.wordlist>div>span{grid-column:1;min-width:0;overflow-wrap:anywhere}.wordlist>div>.button,.wordlist>div>button{grid-column:2;grid-row:1 / span 2;white-space:nowrap}}.lp-reaction-live{position:fixed;inset:auto 0 96px;z-index:60;display:grid;justify-items:center;pointer-events:none}.lp-reaction{display:flex;align-items:center;gap:12px;max-width:min(92vw,360px);padding:12px 20px 12px 12px;border-radius:24px;border:2px solid var(--c-amber-ink);background:var(--c-amber-soft);color:var(--c-amber-ink);box-shadow:0 8px 24px #00000024;animation:lp-reaction-pop 2.5s ease both;transform-origin:50% 100%}.lp-reaction strong{font-size:18px;line-height:1.25}.lp-reaction img{width:72px;height:72px;object-fit:contain;flex:none}.lp-reaction-art{display:grid;place-items:center;width:64px;height:64px;flex:none;color:var(--c-amber-soft)}.lp-reaction-art svg{width:100%;height:100%}.lp-reaction.is-positive .lp-reaction-art{color:#ffd45e}.lp-reaction.is-negative .lp-reaction-art{color:#ffe3a3;animation:lp-reaction-wobble .6s ease 2}@keyframes lp-reaction-pop{0%{opacity:0;transform:translateY(24px) scale(.8)}12%{opacity:1;transform:translateY(0) scale(1.06)}20%{transform:scale(1)}85%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(8px) scale(.96)}}@keyframes lp-reaction-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@media(prefers-reduced-motion:reduce){.lp-reaction{animation:lp-reaction-fade 2.5s linear both}.lp-reaction.is-negative .lp-reaction-art{animation:none}@keyframes lp-reaction-fade{0%,90%{opacity:1}to{opacity:0}}}.lp-finish-sub{margin:-8px 0 0;color:var(--secondary);font-size:var(--fs-body)}.lp-segments.player-outline{flex-direction:row}@media(min-width:641px){.wordlist.wordlist>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;column-gap:24px;justify-content:stretch}.wordlist.wordlist>div>:nth-child(2){text-align:left}}.lp-finish-badge{animation:lp-pop .45s var(--ease-spring, cubic-bezier(.34,1.56,.64,1)) both}.lp-stat{border-width:1px;border-bottom-width:3px;background:var(--card);animation:lp-rise .4s ease-out both}.lp-stars{display:flex;gap:2px;height:40px;align-items:center}.lp-star{display:grid;place-items:center;width:32px;height:32px;color:var(--hairline)}.lp-star svg{width:28px;height:28px}.lp-star.on{color:#e8a400;animation:lp-pop .35s var(--ease-spring, cubic-bezier(.34,1.56,.64,1)) both}.lp-star.on svg,.lp-star.on svg path{fill:currentColor}.lp-finish-actions{animation:lp-rise .4s ease-out 1.6s both}@keyframes lp-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes lp-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.lp-finish-badge,.lp-stat,.lp-star.on,.lp-finish-actions{animation:none}}.wordlist{container-type:inline-size}@container (max-width: 520px){.wordlist.wordlist>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center;flex-wrap:nowrap}.wordlist.wordlist>div>:nth-child(1),.wordlist.wordlist>div>:nth-child(2){grid-column:1;min-width:0;overflow-wrap:anywhere;text-align:left}.wordlist.wordlist>div>:nth-child(2){color:var(--secondary)}.wordlist.wordlist>div>.button,.wordlist.wordlist>div>button{grid-column:2;grid-row:1 / span 2;white-space:nowrap}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--text: #111827;--secondary: #4B5563;--background: #FFFFFF;--card: #F2F4F7;--border: #D5DAE1;--accent: #1D6FD1;--decoration: #3B9EF5;--correct: #1E9E52;--hint: #B97800;--error: #DC2F2F;--track: #E5E8EC;--card-radius: 24px;--control-radius: 14px;--chip-radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:Inter Variable,Inter,sans-serif;color:var(--text);background:var(--background);font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,3vw,38px);line-height:1.18;letter-spacing:-1.2px;font-weight:600}h2{font-size:21px;letter-spacing:-.5px;font-weight:600}h3{font-size:21px;font-weight:600;letter-spacing:-.4px}p,small{color:var(--secondary)}small{display:block;font-size:12px}svg{flex-shrink:0}.shell{display:flex;min-height:100vh}.sidebar{width:230px;flex-shrink:0;background:var(--card);padding:36px 20px 24px;display:flex;flex-direction:column;border-right:1px solid var(--border)}.brand{display:flex;align-items:center;gap:5px;padding:0 16px;min-height:44px;font-size:32px;font-weight:650;letter-spacing:-1.8px}.brand-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;margin-top:18px}.sidebar-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;margin:42px 16px 16px}nav{display:grid;gap:8px}.nav-item{min-height:48px;display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:var(--control-radius);color:var(--secondary);transition:background .2s}.nav-item.active{color:var(--accent);background:var(--background);font-weight:600}.nav-item:hover{background:var(--background)}.sidebar-bottom{margin-top:auto;display:flex;gap:12px;align-items:center;padding:32px 8px 0;font-size:12px}.workspace{width:calc(100% - 230px)}header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 48px;border-bottom:1px solid var(--card)}.demo-label{color:var(--secondary);font-size:12px}select{background:var(--background);border:1px solid var(--border);min-height:44px;border-radius:var(--control-radius);padding:8px 14px}main{max-width:1280px;margin:0 auto;padding:42px 48px 64px}footer{border-top:1px solid var(--card);padding:24px 48px;display:flex;justify-content:space-between;color:var(--secondary);font-size:12px}footer span{font-weight:600;letter-spacing:-.6px}.page-intro{margin-bottom:32px}.eyebrow{color:var(--secondary);text-transform:uppercase;letter-spacing:1.2px;font-size:11px;font-weight:600}.page-intro h1{margin:12px 0 14px;max-width:800px}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 34px;padding:24px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.stats>div{display:flex;align-items:center;gap:16px;padding:0 24px;border-right:1px solid var(--border)}.stats>div:first-child{padding-left:0}.stats>div:last-child{border:0}.stats strong{font-size:32px;font-weight:500}.stats span{color:var(--secondary);font-size:13px}.dashboard{display:grid;grid-template-columns:1.1fr 1fr;gap:28px}.hero{background:var(--card);padding:28px;border-radius:var(--card-radius);border:1px solid var(--border)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.pill{display:inline-block;font-size:12px;padding:6px 10px;background:var(--background);border:1px solid var(--border);border-radius:var(--chip-radius);color:var(--secondary)}.hero-body{display:flex;align-items:center;gap:16px;margin:28px 0}.hero-body h2{font-size:24px}.hero-body p{margin-top:4px;font-size:13px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex-shrink:0;border-radius:var(--control-radius);background:var(--background);border:1px solid var(--border);color:var(--accent);font-size:22px;font-weight:500}.lesson-cover{display:flex;align-items:center;gap:20px;padding:26px 0;border-top:1px solid var(--border);margin-bottom:16px}.cover-mark{display:flex;align-items:center;justify-content:center;font-size:38px;font-weight:500;letter-spacing:-3px;width:88px;height:100px;flex-shrink:0;border-radius:var(--control-radius);background:var(--accent);color:var(--background)}.lesson-cover small{font-size:10px;letter-spacing:1px;margin-bottom:6px}.lesson-cover p{font-size:12px;margin-top:8px}.button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;border:1px solid var(--border);border-radius:var(--control-radius);background:var(--background);font-size:13px;font-weight:550;transition:transform .2s}.button:hover:not(:disabled){background:var(--card);transform:translateY(-1px)}.button.primary{background:var(--accent);color:var(--background);border-color:var(--accent)}.button.primary:hover:not(:disabled){filter:brightness(.93)}.button.wide{width:100%;justify-content:space-between}.button.quiet{background:var(--card);border:none}.plan{padding:10px 4px}.plan .section-heading{margin-bottom:18px}.session-row{display:flex;align-items:center;gap:16px;padding:22px 0;border-bottom:1px solid var(--border)}.session-row time{font-size:13px;color:var(--secondary)}.session-line{width:3px;height:48px;border-radius:2px;background:var(--accent)}.session-info{flex:1}.session-info strong{font-weight:550}.session-info small{margin-top:2px}.session-state{font-size:11px;color:var(--secondary)}.prep{grid-column:1 / -1;display:flex;align-items:center;gap:24px;padding:24px 0;border-top:1px solid var(--border)}.prep h2{flex:1;font-size:16px;font-weight:450}input,textarea{background:var(--background);border:1px solid var(--border);border-radius:var(--control-radius);min-height:48px;padding:12px 16px;width:100%}textarea{min-height:130px;resize:vertical}label{display:grid;gap:8px;font-size:13px;margin:20px 0}.search{max-width:420px}.filters{display:flex;gap:16px;margin-bottom:28px}.student-grid,.material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:28px}.student-card{text-align:left;border:1px solid var(--border);border-radius:var(--card-radius);padding:26px;background:var(--card)}.student-card:hover{border-color:var(--accent)}.student-card h2{margin:18px 0 10px}.student-meta{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding-top:20px;margin-top:24px;font-size:12px;color:var(--secondary)}.material-card{border:1px solid var(--border);border-radius:var(--card-radius);overflow:hidden}.material-art{height:180px;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.material-art>span{color:var(--accent);font-size:64px;letter-spacing:-5px;font-weight:500}.material-art small{letter-spacing:2px;font-size:10px}.material-body{padding:24px}.material-body h2{margin:16px 0 10px;min-height:62px}.material-body p{font-size:12px;margin-bottom:22px}.card-actions{display:flex;gap:8px;margin-top:10px}.card-actions>*{flex:1;padding:10px 8px}.overlay{position:fixed;inset:0;background:var(--text);opacity:.35}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(480px,calc(100% - 32px));max-height:90vh;overflow:auto;padding:28px;border-radius:var(--card-radius);background:var(--background)}.modal h2{font-size:20px}.modal h3{margin:22px 0 8px;font-size:16px}.modal .pill{margin-top:20px}.assign-row{display:flex;justify-content:space-between;width:100%;margin-top:16px}.lesson-top{display:flex;justify-content:space-between;gap:16px}.lesson-heading{margin:32px 0}.lesson-heading h1{margin:12px 0}.progress-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:10px}progress{width:100%;height:8px;border:0;border-radius:8px;overflow:hidden;background:var(--track)}progress::-webkit-progress-bar{background:var(--track)}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}.exercise{margin:24px auto 0;padding:32px;border-radius:var(--card-radius);background:var(--card);border:1px solid var(--border);max-width:800px}.exercise h2{margin-top:30px;font-size:24px}.english-content{margin:32px 0;font-size:26px}.english-content p{color:var(--text);line-height:2.2}.blank{border-bottom:2px solid var(--accent);display:inline-block;min-width:80px;text-align:center;color:var(--accent)}.options{display:flex;gap:16px;margin-top:24px}.options .button{font-size:20px;min-width:88px;min-height:48px}.options .selected{background:var(--accent);color:var(--background);border-color:var(--accent)}.english-content input{width:140px;font-size:22px;padding:4px 12px}.feedback{min-height:50px;font-size:16px;font-weight:550}.feedback p{font-size:15px;font-weight:400;margin-top:8px}.exercise-actions,.exercise-secondary{display:flex;gap:12px;margin-top:16px}.exercise .button{min-height:48px}.exercise-secondary{border-top:1px solid var(--border);padding-top:20px;justify-content:space-between}.exercise-secondary button{background:transparent}.summary{text-align:center;padding:32px 0}.summary-mark{font-size:64px;letter-spacing:-5px;color:var(--accent)}.summary p{margin:18px 0 28px}@media(max-width:1100px){.sidebar{width:190px}.workspace{width:calc(100% - 190px)}main{padding:32px 28px}header{padding:0 28px}.dashboard{gap:24px}.hero{padding:22px}.student-grid,.material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prep{flex-wrap:wrap}.prep .eyebrow{width:100%}.lesson-cover{gap:14px}.cover-mark{width:64px}}@media(max-width:760px){.shell{flex-direction:column}.sidebar{width:100%;padding:12px 16px;border-right:0;border-bottom:1px solid var(--border)}.brand{font-size:26px;padding:0 6px}.brand-dot{margin-top:14px}.sidebar-label,.sidebar-bottom{display:none}nav{display:flex;margin-top:12px;gap:6px}.nav-item{flex:1;justify-content:center;padding:10px 6px;font-size:12px;gap:6px}.nav-item svg{width:20px}.workspace{width:100%}header{padding:12px 20px;height:auto}.demo-label{max-width:220px;font-size:11px}main{padding:28px 20px}h1{font-size:28px}.page-intro{margin-bottom:24px}.page-intro.section-heading{flex-wrap:wrap}.page-intro p{font-size:13px}.stats{padding:18px 0;margin-bottom:24px}.stats>div{padding:0 12px;flex-direction:column;align-items:start;gap:4px}.stats strong{font-size:26px}.stats span{font-size:11px}.dashboard{grid-template-columns:1fr}.hero{padding:22px}.prep{flex-direction:column;align-items:flex-start;gap:16px}.student-grid,.material-grid{grid-template-columns:1fr;gap:20px}.filters{flex-wrap:wrap}footer{padding:24px 20px}.lesson-top{align-items:center;flex-wrap:wrap}.exercise{padding:20px}.exercise h2{font-size:20px}.english-content{font-size:22px}.options{gap:10px}.options .button{min-width:76px}.exercise-secondary,.exercise-actions{flex-wrap:wrap}.modal{padding:22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.button{text-align:center}.button.wide{justify-content:center}.modal{--modal-pad: 24px;display:flex;flex-direction:column;width:min(480px,calc(100% - 32px));max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);padding:var(--modal-pad);overflow:hidden;border-radius:var(--radius-card, 20px);background:var(--surface, #fff);border:1px solid var(--hairline, #E6E9EF);box-shadow:0 8px 24px #11182714;overscroll-behavior:contain}.modal:focus{outline:none}.modal-head{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:-4px -8px 8px 0}.modal-head h2{margin:0;padding-top:8px;min-width:0;overflow-wrap:anywhere;font-size:20px;line-height:1.3}.modal-close{flex:0 0 44px;display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-control, 12px);background:transparent;color:var(--secondary);cursor:pointer;transition:background .12s,color .12s}.modal-close:hover{background:var(--page, #F4F5F7);color:var(--text)}.modal-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-close svg{width:24px;height:24px}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;margin:0 calc(-1 * var(--modal-pad));padding:8px var(--modal-pad)}.modal-body>p:first-child{margin-top:0}.modal-body>label:first-child,.modal-body>form>label:first-child{margin-top:0}.modal-body>.button.primary:last-of-type,.modal-body>form>.button[type=submit]:last-of-type{display:flex;width:auto;min-width:160px;margin:24px 0 0 auto;justify-content:center;text-align:center}.modal-foot{flex:none;display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;margin:0 calc(-1 * var(--modal-pad)) calc(-1 * var(--modal-pad));padding:12px var(--modal-pad);background:var(--surface, #fff);border-top:1px solid var(--hairline, #E6E9EF)}.modal-foot .button{min-height:44px;min-width:120px;justify-content:center}@media(max-width:760px){.modal{--modal-pad: 16px;top:auto;bottom:0;left:50%;transform:translate(-50%);width:100%;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding-top:12px;border-radius:var(--radius-card, 20px) var(--radius-card, 20px) 0 0}.modal:not(.has-footer){padding-bottom:calc(var(--modal-pad) + env(safe-area-inset-bottom))}.modal-body>.button.primary:last-of-type,.modal-body>form>.button[type=submit]:last-of-type{width:100%;margin-left:0}.modal-foot{padding-bottom:calc(12px + env(safe-area-inset-bottom));margin-bottom:0}.modal-foot .button{flex:1 1 0}}@media(prefers-reduced-motion:no-preference){.modal[data-state=open]{animation:modal-in .18s ease-out}@keyframes modal-in{0%{transform:translate(-50%,calc(-50% + 12px))}}@media(max-width:760px){.modal[data-state=open]{animation-name:modal-sheet-in}@keyframes modal-sheet-in{0%{transform:translate(-50%,24px)}}}}@media(prefers-reduced-motion:reduce){.modal-close{transition:none}}.shell{background:var(--card);padding-top:76px}.sidebar{width:104px;padding:24px 8px;position:fixed;left:0;top:76px;bottom:0;background:var(--background);border:0;z-index:5}.sidebar>.brand,.sidebar-label,.sidebar-bottom{display:none}.nav-item{flex-direction:column;gap:6px;padding:12px 4px;min-height:70px;font-size:11px;text-align:center}.nav-item.active{color:var(--text);background:var(--card);box-shadow:inset 3px 0 0 var(--accent)}.workspace{width:calc(100% - 104px);margin-left:104px}header{position:fixed;top:0;left:0;right:0;height:76px;padding:0 28px;gap:20px;background:var(--background);border-bottom:1px solid var(--border);z-index:10}.header-brand{margin-right:auto;padding:0;font-size:29px}.demo-label{margin-right:auto}main{margin:28px;max-width:none;padding:32px;border-radius:var(--card-radius);background:var(--background);min-height:calc(100vh - 210px)}footer{padding:0 32px 24px;border:0}h1{font-size:32px;letter-spacing:-.8px}.page-intro h1{margin-top:0}.page-intro p{margin-top:10px}.page-intro.section-heading{align-items:center}.filters .search{flex:1;max-width:none}.result-count{color:var(--secondary);font-size:13px;border-bottom:1px dashed var(--border);padding-bottom:18px}.material-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.material-card{border:1px solid var(--border);box-shadow:none;background:var(--background)}.material-body{padding:20px}.material-body h2{min-height:0;font-size:19px}.course-cover{padding:28px;min-height:185px;display:flex;flex-direction:column;justify-content:center;gap:12px;background:var(--card);border-bottom:1px solid var(--border)}.course-cover>span{font-size:34px;font-weight:650;color:var(--accent);letter-spacing:-1px}.course-cover small{font-size:10px;letter-spacing:1.5px}.create-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;border:2px dashed var(--border);border-radius:var(--card-radius);min-height:260px}.create-card:hover{border-color:var(--accent)}.create-card>strong{font-size:40px;font-weight:400;color:var(--accent)}.create-card h2{font-size:19px;margin:12px 0;color:var(--accent)}.create-card p{font-size:13px;max-width:240px}.section-tabs{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid var(--border)}.selected{background:var(--accent)!important;color:var(--background)!important;border-color:var(--accent)!important}.section-tabs .button span{font-size:12px}.builder-toolbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:20px}.builder-toolbar>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.save-note{color:var(--secondary);font-size:11px}.builder-title{display:grid;grid-template-columns:minmax(0,1fr) 140px 200px;gap:16px}.builder-title>label:first-child input{font-size:22px;font-weight:600}.builder-guide{font-size:13px;margin-bottom:22px}.builder-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px}.block-list{padding:20px;border-radius:var(--control-radius);background:var(--card);align-self:start}.block-list h2{font-size:15px;margin-bottom:20px}.block-item{display:flex;width:100%;justify-content:flex-start;text-align:left;margin:10px 0;min-height:66px}.block-item strong{font-size:12px;font-weight:600}.block-item small{color:inherit;overflow:hidden;text-overflow:ellipsis;max-width:150px;white-space:nowrap}.block-number{font-size:16px}.add-block{width:100%;margin-top:12px}.block-editor{border:1px solid var(--border);border-radius:var(--card-radius);padding:28px;min-width:0}.block-editor h2{font-size:20px}.block-editor textarea{min-height:115px}.editor-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}details{margin-top:22px}summary{cursor:pointer;min-height:44px;padding:12px 0;color:var(--secondary);font-size:13px}.check-label{display:flex;align-items:center;gap:12px;min-height:44px}.check-label input{width:20px;min-height:20px;accent-color:var(--accent)}fieldset{border:1px solid var(--border);border-radius:var(--control-radius);margin-top:22px}legend{font-size:13px;padding:0 8px}.type-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}.type-palette .button{text-align:left;justify-content:flex-start;min-height:54px}.empty-state{padding:38px 20px;text-align:center}.empty-state p{font-size:14px;margin:16px auto 24px;max-width:450px}.undo-bar{position:fixed;bottom:24px;right:24px;z-index:10}.player-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;margin-top:24px}.player-outline{display:flex;flex-direction:column;gap:10px}.player-outline .button{justify-content:space-between;text-align:left}.player-layout .exercise{margin:0;width:100%;max-width:none;background:var(--background)}.english-content{font-size:20px}.english-content p{line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.english-content textarea{min-height:160px}.exercise-image{width:100%;max-height:260px;object-fit:contain;border-radius:var(--control-radius)}.video-frame{width:100%;aspect-ratio:16 / 9;border:0;border-radius:var(--control-radius)}audio{max-width:100%;display:block;margin-top:12px}.tile-bank,.options{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.tile-bank .button{font-size:18px;min-height:48px}.sentence-result{padding:20px;background:var(--card);border:1px dashed var(--border);border-radius:var(--control-radius);min-height:68px}.pair-list{display:grid;gap:14px}.pair-list label{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:14px;margin:0;font-size:18px}.wordlist>div{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding:12px 0}.article-content{font-size:20px}.lesson-heading h1{margin:16px 0}.teacher-comment{background:var(--card);border-radius:var(--control-radius);padding:16px;margin-top:16px;font-size:14px}.assignment-list{display:grid;gap:18px}.assignment-card{border:1px solid var(--border);border-radius:var(--card-radius);padding:24px;display:flex;justify-content:space-between;align-items:center;gap:24px}.assignment-card h2{margin:12px 0}.assignment-card p{font-size:14px}.assignment-actions{display:flex;flex-wrap:wrap;gap:8px;max-width:330px;justify-content:flex-end}.status-badge{display:inline-flex;padding:5px 10px;border-radius:var(--chip-radius);background:var(--card);color:var(--secondary);font-size:12px;border:1px solid var(--border)}.status-submitted{color:var(--accent);border-color:var(--accent)}.status-revision{color:var(--text);border-color:var(--hint)}.status-accepted{color:var(--text);border-color:var(--correct)}.review-answers{margin:20px 0;display:grid;gap:20px}.review-answers>div{border-bottom:1px solid var(--border);padding-bottom:16px}.review-answers p{margin-top:10px;overflow-wrap:anywhere;font-size:14px}.dashboard-panel{padding:24px;border:1px solid var(--border);border-radius:var(--card-radius);min-width:0}.dashboard-panel.full{grid-column:1/-1}.dashboard-panel>p{margin-top:20px}.dashboard-task{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:20px 0;border-bottom:1px solid var(--border)}.dashboard-task:last-child{border:0}.dashboard-task small{margin-top:5px}.dashboard-task>div{flex:1}.dashboard-panel .session-row{flex-wrap:wrap}.session-row .button{font-size:12px}.stats strong{font-size:28px}.hero>h3{margin-bottom:24px}.word-preview{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.word-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.word-card{padding:24px;border:1px solid var(--border);border-radius:var(--card-radius)}.word-card h2{font-size:27px;margin:16px 0 8px}.word-card small{margin-top:12px;min-height:40px}.word-card .card-actions{flex-wrap:wrap}.trainer-modes{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.trainer-modes .button{font-size:11px}.flashcard{padding:36px 0;text-align:center;font-size:32px!important}.word-card .button{font-size:12px}@media(max-width:1100px){.material-grid,.word-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-layout{grid-template-columns:220px minmax(0,1fr);gap:16px}.builder-title{grid-template-columns:1fr 140px}.builder-title>label:last-child{grid-column:1/-1}.player-layout{grid-template-columns:180px minmax(0,1fr)}}@media(max-width:760px){.shell{padding-top:0}header{position:relative;height:auto;flex-wrap:wrap;padding:14px 16px;gap:8px}.header-brand{display:none}.demo-label{flex-basis:100%;margin:0;max-width:none}.sidebar{position:static;width:100%;padding:10px}.sidebar>.brand{display:flex;font-size:24px}nav{overflow-x:auto;flex-wrap:nowrap;gap:2px;margin:10px 0 0}.nav-item{flex-direction:column;min-width:61px;font-size:10px;gap:5px;min-height:62px}.workspace{width:100%;margin:0}main{margin:14px 10px;padding:20px 16px;min-height:500px}.page-intro.section-heading{align-items:flex-start;flex-wrap:wrap}.material-grid,.word-grid{grid-template-columns:1fr}.filters>*{width:100%}.builder-toolbar{flex-wrap:wrap}.builder-toolbar>div{width:100%}.builder-title{grid-template-columns:1fr;gap:0}.builder-title>label:last-child{grid-column:auto}.builder-layout{grid-template-columns:1fr;gap:16px}.block-list{padding:16px}.block-editor{padding:18px}.block-editor .section-heading{flex-wrap:wrap}.player-layout{grid-template-columns:1fr}.player-outline{flex-direction:row;overflow-x:auto;padding:4px}.player-outline .button{flex-shrink:0;max-width:210px}.player-layout .exercise{padding:18px}.assignment-card{flex-direction:column;align-items:flex-start;padding:20px;gap:18px}.assignment-actions{justify-content:flex-start}.dashboard-panel{padding:18px}.dashboard-task{flex-wrap:wrap}.dashboard-task>div{min-width:120px}.dashboard-panel .section-heading{flex-wrap:wrap}.session-info{min-width:120px}.type-palette{grid-template-columns:1fr}.pair-list label{font-size:16px}.wordlist>div{flex-wrap:wrap}.stats span{font-size:10px}.stats strong{font-size:22px}}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.assignment-list{margin-top:24px}@media(max-width:760px){.settings-grid{grid-template-columns:1fr}}.sidebar{overflow-y:auto}.nav-item{min-height:64px}@media(min-width:761px){.sidebar{width:190px;padding:20px 12px}.workspace{margin-left:190px;width:calc(100% - 190px)}.nav-item{flex-direction:row;text-align:left;justify-content:flex-start;gap:12px;font-size:12px;min-height:46px;padding:10px 12px}.nav-item svg{width:20px;height:20px}}:root{--page: #F4F6FA;--accent-soft: #E8F2FD;--shadow: 0 1px 2px rgba(17,24,39,.04);--hairline: #E6E9EF}header{border-bottom:0;box-shadow:0 1px 0 var(--hairline)}header select{border-color:transparent;background:var(--page);font-weight:500}.demo-label{background:#fff4d6;color:#6b4a00;padding:6px 12px;border-radius:999px;font-weight:500}.sidebar{width:232px;padding:16px 12px 24px;overflow-y:auto;scrollbar-width:none;box-shadow:1px 0 0 var(--hairline)}.sidebar::-webkit-scrollbar{display:none}.sidebar nav{gap:24px}.nav-group{display:grid;gap:2px}.nav-group-label{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--secondary);padding:0 12px 8px}.sidebar .nav-item{flex-direction:row;justify-content:flex-start;text-align:left;min-height:44px;padding:8px 12px;gap:12px;font-size:14px;font-weight:500;border-radius:10px;color:var(--secondary);transition:background .15s,color .15s}.sidebar .nav-item:hover{background:var(--page);color:var(--text)}.sidebar .nav-item.active{background:var(--accent-soft);color:#1557a8;box-shadow:none;font-weight:600}.shell{--sb-w: 232px;--float-gap: 12px}.workspace{width:calc(100% - var(--sb-w) - 2 * var(--float-gap));margin-left:calc(var(--sb-w) + 2 * var(--float-gap))}main{margin:24px auto;max-width:1240px;box-shadow:var(--shadow);border:1px solid var(--hairline)}.button{border-radius:10px;font-weight:500}.button.primary{font-weight:600;box-shadow:none}@media(max-width:900px){.sidebar{width:auto;inset:auto 0 0;height:auto;padding:6px 8px;overflow-x:auto;overflow-y:hidden;box-shadow:0 -1px #e6e9ef}.sidebar nav{display:flex;gap:4px}.nav-group{display:flex;gap:4px}.nav-group-label{display:none}.sidebar .nav-item{flex-direction:column;gap:2px;font-size:11px;min-width:72px;min-height:56px;padding:6px 4px;justify-content:center;text-align:center}.workspace{width:100%;margin-left:0;padding-bottom:72px}main{margin:8px;padding:24px 16px;border:0}}@media(prefers-reduced-motion:reduce){.sidebar .nav-item{transition:none}}.nav-more summary{list-style:none;cursor:pointer;color:var(--secondary)}.nav-more summary::-webkit-details-marker{display:none}.nav-more summary:after{content:"▾";margin-left:auto;font-size:12px}.nav-more[open] summary:after{content:"▴"}@media(max-width:900px){.nav-more{display:flex}.nav-more summary:after{content:none}}footer{display:none}.mobile-only{display:none!important}header{gap:8px}header .header-brand{margin-right:auto}.language-select{min-height:44px}.profile-menu{position:relative;display:flex;margin:0}.profile-menu summary{list-style:none;cursor:pointer;padding:0;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}.profile-menu summary::-webkit-details-marker{display:none}.profile-menu summary .avatar{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:#1557a8}.profile-menu summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.profile-popover{position:absolute;right:0;top:calc(100% + 8px);width:min(280px,calc(100vw - 32px));display:grid;gap:16px;padding:16px;background:#fff;border:1px solid var(--hairline);border-radius:16px;box-shadow:0 8px 24px #11182714;z-index:30}.profile-popover label{display:grid;gap:8px;font-size:13px;color:var(--secondary)}.profile-popover .demo-label{margin:0;justify-self:start;font-size:12px}.profile-popover select{width:100%}@media(min-width:901px){.sidebar{position:fixed;top:76px;bottom:0;height:calc(100vh - 76px);background:#fff}}.day-picker{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.day-picker .button{min-width:44px;min-height:44px;font-size:20px}@media(max-width:900px){.shell{padding-top:64px;flex-direction:column}header{position:fixed;top:0;left:0;right:0;height:64px;padding:0 16px;flex-wrap:nowrap;z-index:20;background:#fff}header .header-brand{display:flex;font-size:24px;padding:0}.sidebar{position:fixed;inset:auto 0 0;width:auto;height:auto;padding:4px 4px calc(4px + env(safe-area-inset-bottom));overflow:visible;background:#fff;z-index:20}.sidebar>.brand,.sidebar-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:0;margin:0;overflow:visible}.sidebar .nav-group{display:contents}.sidebar .nav-item{flex:1 1 0;min-width:0;min-height:56px;padding:6px 2px;font-size:11px;flex-direction:column;justify-content:center;text-align:center;gap:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar .nav-item svg{flex-shrink:0}.desktop-only{display:none!important}.mobile-only{display:flex!important}.nav-more{display:flex;flex:1 1 0;min-width:0}.nav-more summary{width:100%}.nav-more summary.active-group{color:#1557a8;background:var(--accent-soft);font-weight:600}.nav-more-list{position:fixed;left:8px;right:8px;bottom:calc(72px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:8px;max-height:60vh;overflow-y:auto;background:#fff;border:1px solid var(--hairline);border-radius:16px;box-shadow:0 8px 24px #1118271f}.nav-more-list .nav-item{flex-direction:row!important;justify-content:flex-start!important;text-align:left!important;font-size:14px!important;min-height:48px!important;padding:8px 12px!important;gap:12px!important;white-space:normal!important;overflow:visible!important}.nav-more summary:after,.nav-more[open] summary:after{content:none}.workspace{width:100%;margin-left:0;padding-bottom:80px}}.overlay{z-index:100}.modal{z-index:101}.nav-subgroup-label{margin:12px 12px 4px;font-size:var(--fs-label, 12px);font-weight:600;color:var(--secondary)}.nav-more-list>.nav-subgroup-label:first-of-type{margin-top:4px}.profile-links{display:grid;gap:2px;padding-bottom:12px;border-bottom:1px solid var(--hairline)}.profile-links .nav-item{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 12px;border-radius:10px;color:var(--text);font-weight:500}.profile-links .nav-item:hover{background:var(--page)}.profile-links .nav-item.active{background:var(--accent-soft);color:var(--accent-ink, #1557A8)}@media(max-width:900px){.nav-subgroup-label{grid-column:1 / -1;margin:8px 4px 0}}@media(min-width:901px){.shell{padding-top:0}.sidebar{top:var(--float-gap);left:var(--float-gap);bottom:var(--float-gap);height:auto;width:var(--sb-w);padding-top:16px;padding-bottom:76px;border:0;border-radius:var(--radius-card, 20px);background:var(--surface, #fff);box-shadow:0 0 0 1px var(--hairline),0 1px 3px #1118270d}.sidebar-head>.brand{display:flex;font-size:26px;padding:0 12px;min-height:44px}header{top:auto;bottom:var(--float-gap);left:var(--float-gap);right:auto;width:var(--sb-w);height:auto;border-radius:0 0 var(--radius-card, 20px) var(--radius-card, 20px);padding:12px;gap:8px;justify-content:space-between;background:#fff;box-shadow:0 -1px 0 var(--hairline);border:0;z-index:12}header .header-brand{display:none}header .profile-menu{order:-1}.profile-popover{top:auto;bottom:calc(100% + 8px);left:0;right:auto}main{margin-top:16px}}select{appearance:none;-webkit-appearance:none;padding-right:36px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%234B5563' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;border:1px solid var(--hairline);border-radius:10px;min-height:44px;cursor:pointer;transition:border-color .12s,box-shadow .12s}select:hover{border-color:#868e9c}select:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}header select.language-select{background-color:var(--page);border-color:transparent;font-weight:600}@media(prefers-reduced-motion:reduce){select{transition:none}}@media(min-width:901px){header{align-items:center}header .profile-menu summary{min-width:44px;min-height:44px}header .profile-menu summary .avatar{width:40px;height:40px}header select.language-select{width:88px;min-height:40px;margin:0}.sidebar-bottom{display:none}}.sidebar-head{display:none}.sidebar-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--secondary);opacity:.8;cursor:pointer}.sidebar-toggle:after{content:"";position:absolute;inset:-6px}.sidebar-toggle svg{width:24px;height:24px}.sidebar-toggle:hover{background:var(--page);color:var(--text);opacity:1}.sidebar-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(min-width:901px){.sidebar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sidebar-head>.brand{margin:0}.sidebar-collapsed{--sb-w: 72px}.sidebar-collapsed .sidebar{padding:16px 12px 124px}.sidebar-collapsed .sidebar-head{flex-direction:column;gap:8px;margin-bottom:16px}.sidebar-collapsed .sidebar-head>.brand{padding:0;min-height:24px;justify-content:center}.sidebar-collapsed .brand-word{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.sidebar-collapsed .sidebar-head .brand-dot{width:12px;height:12px;margin:0}.sidebar-collapsed .sidebar nav{gap:12px}.sidebar-collapsed .nav-group-label{display:none}.sidebar-collapsed .nav-group>.nav-item{width:48px;height:44px;padding:0;gap:0;justify-content:center;font-size:0}.sidebar-collapsed .nav-group>.nav-item:after{content:none}.sidebar-collapsed .nav-more-list{position:fixed;top:var(--float-gap);left:calc(var(--float-gap) + 72px + 8px);z-index:30;width:232px;max-height:calc(100vh - 2 * var(--float-gap));overflow-y:auto;display:none;gap:2px;padding:8px;background:#fff;border:1px solid var(--hairline);border-radius:16px;box-shadow:0 8px 24px #1118271f}.sidebar-collapsed .nav-more[open]>.nav-more-list{display:grid}html body .shell{background:var(--page)}.shell .lp-bar{left:calc(var(--sb-w) + 2 * var(--float-gap))}.sidebar-collapsed .workspace>header{width:72px;flex-direction:column;padding:12px 8px}.sidebar-collapsed header select.language-select{width:56px;padding:0 18px 0 8px!important;background-position:right 4px center;background-size:12px}.no-sidebar .sidebar,.no-sidebar .workspace>header{display:none}.no-sidebar .workspace{width:100%;margin-left:0}body .shell.no-sidebar{background:var(--page)}.no-sidebar .lp-bar{left:0}.no-sidebar main{max-width:none;margin:16px}}@media(min-width:901px)and (prefers-reduced-motion:no-preference){.sidebar{transition:width .2s ease,padding .2s ease}.workspace{transition:width .2s ease,margin-left .2s ease}.workspace>header{transition:width .2s ease}}@media(max-width:900px){.sidebar{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:4px;border:0;border-radius:28px;background:var(--surface, #fff);box-shadow:0 0 0 1px var(--hairline),0 2px 8px #11182714}.sidebar .nav-item{border-radius:22px}.nav-more-list{left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom))}.workspace{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}.no-sidebar .sidebar,.no-sidebar .workspace>header{display:none}@media(max-width:900px){.shell.no-sidebar{padding-top:0}.no-sidebar .workspace{width:100%;margin-left:0;padding-bottom:0}.no-sidebar .lp-bar{left:0}}.chip-field{margin:0 0 12px;padding:0;border:0;min-width:0}.chip-field>legend{padding:0;margin:0 0 8px;font-size:var(--fs-label, 13px);font-weight:600;color:var(--secondary)}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.chip{position:relative;display:inline-flex;margin:0}.chip>input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.chip>span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 16px;border:1px solid var(--hairline);border-radius:var(--radius-chip, 999px);background:var(--surface, #fff);color:var(--text);font-size:14px;font-weight:500;transition:background .12s,border-color .12s,color .12s}.chip:hover>input:not(:checked)+span{background:var(--page)}.chip>input:checked+span{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink, #1557A8);font-weight:600}.chip>input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.chips>input[type=date],.chips>input[type=time]{width:auto;min-width:140px;min-height:44px;margin:0;padding:8px 12px}.modal:has(.session-form){width:min(560px,calc(100% - 32px))}.session-form>label{margin:0 0 12px}.session-form .form-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.session-form .form-more{margin:0 0 8px}.session-form .form-more>summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;font-weight:600;font-size:14px;color:var(--accent-ink, #1557A8)}.session-form .form-more>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}.session-form .form-more[open]>summary{margin-bottom:8px}.session-form .cal-series-info:empty{display:none}@media(prefers-reduced-motion:reduce){.chip>span{transition:none}}.modal:has(.sf){width:min(680px,calc(100% - 32px))}.sf{display:grid;gap:20px}.sf>label,.sf .sf-group>label{margin:0}.sf .sf-group{display:grid;gap:8px;margin:0;min-width:0}.sf .chip-field,.sf .chip-field.sf-group{margin:0;display:grid;gap:8px}.sf .chip-field>legend,.sf .sf-label{padding:0;margin:0;font-size:13px;font-weight:600;color:var(--secondary)}.sf .chips{gap:8px}.sf .chip>span{min-height:40px;min-width:40px;padding:0 12px;font-size:14px}.sf .chips>input[type=date],.sf .chips>input[type=time],.sf .chips>input[type=number]{min-height:40px;height:40px;padding:4px 10px;font-size:14px;min-width:0;width:auto;flex:0 1 150px}.sf .chips>input[type=time]{flex-basis:110px}.sf .chips>input[type=number]{flex-basis:90px}.sf select,.sf input:not([type=radio]),.sf textarea{min-height:40px;padding:4px 12px;font-size:14px}.sf textarea{min-height:72px;padding:8px 12px}.sf-when{grid-template-columns:1fr 1fr;gap:20px}.sf-who{display:flex;align-items:center;gap:8px}.sf-who select{flex:1 1 auto;min-width:0}.sf-face{flex:none}.sf-days{display:flex;flex-wrap:wrap;gap:8px}.sf .cal-days{margin:0}.sf .cal-daychip{min-height:40px;min-width:40px}.sf-ends{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 12px}.sf-ends label{margin:0;font-size:13px;font-weight:600;color:var(--secondary);display:grid;gap:4px}.sf-ends .cal-series-info{grid-column:1 / -1;margin:0}.sf .form-more{margin:0}.sf .form-more>summary{min-height:40px}.sf .form-more[open]{display:grid;gap:8px}.sf .form-more label{margin:0;display:grid;gap:4px;font-size:13px;font-weight:600;color:var(--secondary)}.sf .cal-series-info:empty{display:none}.sf-summary{flex:1 1 auto;min-width:0;margin:0;text-align:left;font-size:14px;font-weight:600;color:var(--text);overflow-wrap:anywhere}.sf-summary.is-missing{color:var(--secondary);font-weight:500}@media(pointer:coarse),(max-width:760px){.sf .chip>span,.sf .chips>input[type=date],.sf .chips>input[type=time],.sf .chips>input[type=number],.sf select,.sf input:not([type=radio]),.sf .cal-daychip,.sf .form-more>summary{min-height:44px;height:auto}.sf .chips>input[type=date],.sf .chips>input[type=time]{height:44px}.sf .chip>span,.sf .cal-daychip{min-width:44px}}@media(max-width:760px){.sf-when{grid-template-columns:1fr;gap:20px}.sf-summary{flex:1 1 100%}}.sf .chip{padding:0;gap:0;border-radius:0;background:none}.sf .chip>span{padding:0 10px}.sf .chips>input[type=date]{flex-basis:136px}.sf-when{grid-template-columns:1.15fr 1fr}.modal:has(.sf){width:min(720px,calc(100% - 32px))}.sf-when{grid-template-columns:1fr 1fr;align-items:start}.sf .chip>span{padding:0 9px}@media(max-width:760px){.sf-when{grid-template-columns:1fr}.modal:has(.sf){width:100%}}.nav-item{position:relative}.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--c-amber-ink, #6B4A00);color:#fff;font-size:11px;font-weight:700;line-height:20px;text-align:center;font-variant-numeric:tabular-nums;animation:nudge-in .2s ease-out}.sidebar-collapsed .nav-badge{position:absolute;top:6px;right:6px;margin:0}@media(max-width:760px){.nav-badge{position:absolute;top:2px;right:calc(50% - 22px);margin:0;min-width:18px;height:18px;line-height:18px;padding:0 5px}}.wrap-banner{display:none}@media(max-width:900px){.wrap-banner{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 4px 0 16px;background:var(--accent-soft);color:var(--accent-ink);border-bottom:1px solid var(--hairline, var(--border));font-size:14px;font-weight:600;animation:nudge-in .2s ease-out}.wrap-banner>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wrap-banner .wrap-banner-act{min-height:44px;display:inline-flex;align-items:center;padding:0 12px;font-weight:700;color:var(--accent-ink);text-decoration:underline}.wrap-banner .wrap-banner-x{min-width:44px;min-height:44px;border:0;background:none;color:var(--accent-ink);font-size:22px;cursor:pointer}}.nudge-strip{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0;padding:0}.nudge-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 2px 2px 12px;border-radius:999px;font-size:13px;font-weight:600;background:var(--c-amber-soft, #FFF4D6);color:var(--c-amber-ink, #6B4A00);animation:nudge-in .2s ease-out}.nudge-chip.tone-blue{background:var(--accent-soft);color:var(--accent-ink)}.nudge-chip .nudge-chip-act{min-height:44px;padding:0 12px;border-radius:999px;font-size:13px;background:#fff}@keyframes nudge-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.nav-badge,.wrap-banner,.nudge-chip{animation:none}}.nudge-chip{padding:0 4px 0 12px;min-height:32px}.nudge-chip .nudge-chip-act{position:relative;min-height:32px;padding:0 10px;margin-left:4px;background:transparent;color:inherit;text-decoration:underline;text-underline-offset:3px;border:0;border-left:1px solid color-mix(in srgb,currentColor 25%,transparent);border-radius:0;box-shadow:none}.nudge-chip .nudge-chip-act:after{content:"";position:absolute;inset:-6px 0}.nudge-chip .nudge-chip-act:hover{text-decoration-thickness:2px}.parent-actions{display:flex;flex-wrap:wrap;gap:8px}.parent-actions .button{white-space:nowrap}.parent-note{margin:8px 0 0;color:var(--secondary);font-size:var(--fs-meta)}:root{--page: #F4F5F7;--surface: #FFFFFF;--hairline: #E4E7EC;--text: #111827;--secondary: #4B5563;--accent: #1D6FD1;--accent-ink: #1557A8;--accent-soft: #E8F2FD;--accent-edge: #1557A8;--c-blue: #1D6FD1;--c-blue-soft: #E8F2FD;--c-blue-ink: #1557A8;--c-violet: #6D28D9;--c-violet-soft: #F1EBFE;--c-violet-ink: #5B21B6;--c-coral: #C2410C;--c-coral-soft: #FDEDE7;--c-coral-ink: #B4361A;--c-green: #15803D;--c-green-soft: #E3F6EA;--c-green-ink: #156B3A;--c-teal: #0F766E;--c-teal-soft: #E0F5F4;--c-teal-ink: #0E6B6B;--c-amber-soft: #FFF4D6;--c-amber-ink: #6B4A00;--c-rose-soft: #FDE8E8;--c-rose-ink: #9B1C1C;--fs-display: clamp(28px, 3vw, 36px);--fs-h2: 20px;--fs-body: 15px;--fs-meta: 13px;--fs-label: 12px;--edge: 0 2px 0 var(--hairline);--edge-strong: 0 3px 0 #D0D5DD;--radius-card: 20px;--radius-control: 12px;--radius-chip: 999px;--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}.shell{background:var(--page)}@media(min-width:901px){body .shell{background:linear-gradient(to right,var(--surface) 232px,var(--page) 232px)}}main{background:transparent;border:0;box-shadow:none;padding:32px 40px}h1,.page-intro h1{font-size:var(--fs-display);font-weight:700;letter-spacing:-.02em;line-height:1.15}h2{font-size:var(--fs-h2);font-weight:600;letter-spacing:-.01em}h1,h2,h3,h4,legend,summary,.lp-title{text-wrap:balance}p,li,dd,label,small,figcaption{text-wrap:pretty}.eyebrow{font-size:var(--fs-label);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--secondary)}.button{border-radius:var(--radius-control);border:1px solid var(--hairline);background:var(--surface);box-shadow:var(--edge);transition:transform .12s var(--ease-spring),box-shadow .12s,background .12s}.button:hover:not(:disabled){transform:translateY(-1px);background:var(--surface)}.button:active:not(:disabled){transform:translateY(2px);box-shadow:none}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 3px 0 var(--accent-edge)}.button.primary:hover:not(:disabled){background:#1a64bd;border-color:#1a64bd;color:#fff;filter:none}.button.primary:active:not(:disabled){box-shadow:0 0 0 var(--accent-edge)}.button.quiet,.button.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--accent-ink)}.button.quiet:hover:not(:disabled),.button.ghost:hover:not(:disabled){background:var(--accent-soft)}.sidebar .nav-item{transition:background .18s var(--ease-spring),color .15s}.sidebar .nav-item:hover{background:var(--page)}.sidebar .nav-item.active{background:var(--accent-soft);color:var(--accent-ink)}.course-blue{--course: var(--c-blue);--course-soft: var(--c-blue-soft);--course-ink: var(--c-blue-ink)}.course-violet{--course: var(--c-violet);--course-soft: var(--c-violet-soft);--course-ink: var(--c-violet-ink)}.course-coral{--course: var(--c-coral);--course-soft: var(--c-coral-soft);--course-ink: var(--c-coral-ink)}.course-green{--course: var(--c-green);--course-soft: var(--c-green-soft);--course-ink: var(--c-green-ink)}.course-teal{--course: var(--c-teal);--course-soft: var(--c-teal-soft);--course-ink: var(--c-teal-ink)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-chip);font-size:var(--fs-label);font-weight:600}.chip-new{background:var(--c-blue-soft);color:var(--c-blue-ink)}.chip-submitted{background:var(--c-amber-soft);color:var(--c-amber-ink)}.chip-accepted{background:var(--c-green-soft);color:var(--c-green-ink)}.chip-revision{background:var(--c-rose-soft);color:var(--c-rose-ink)}@media(max-width:900px){main{padding:20px 16px}}@media(prefers-reduced-motion:reduce){.button,.sidebar .nav-item{transition:none}.button:hover:not(:disabled),.button:active:not(:disabled){transform:none}}:is(li,article,tr,section,[class*=row],[class*=card],[class*=item],[class*=hero],[class*=actions]):has(.more-menu-list,.row-menu-list){position:relative;z-index:40}.more-menu-list,.row-menu-list{z-index:41}svg.avatar-art{display:block;flex:none;border-radius:50%;background:none;box-shadow:none}.today-hello{display:flex;align-items:center;gap:16px}.hello-avatar{width:56px;height:56px}.more-menu-list,.row-menu-list{position:fixed;z-index:2000;transform-origin:top right;animation:menu-pop .2s ease-out}.more-menu-list[data-side=top],.row-menu-list[data-side=top]{transform-origin:bottom right;animation-name:menu-pop-up}@keyframes menu-pop{0%{opacity:0;transform:translateY(-6px) scale(.98)}}@keyframes menu-pop-up{0%{opacity:0;transform:translateY(6px) scale(.98)}}@media(prefers-reduced-motion:reduce){.more-menu-list,.row-menu-list{animation:none}}main:has(.dashboard){background:#f4f6fa;box-shadow:none}main:has(.dashboard) .page-intro h1{color:#111827}main:has(.dashboard) .page-intro p{color:#4b5563}main:has(.dashboard) .eyebrow{color:#1d6fd1}.dashboard{gap:24px}.hero,.dashboard-panel{background:#fff;border:1px solid #E6E9EF;border-radius:16px;box-shadow:none}.hero,.dashboard-panel{padding:24px}.dashboard-panel h2,.hero h2{color:#111827}.hero-body .avatar{width:64px;height:64px;font-size:26px}.hero>h3{color:#111827}.pill{background:#e8f1fc;color:#17508f;border:0;border-radius:999px;padding:4px 12px;font-weight:500;font-size:12px}.word-preview .pill:nth-child(4n+2){background:#dff5e7;color:#14683a}.word-preview .pill:nth-child(4n+3){background:#fff0d1;color:#7a4d00}.word-preview .pill:nth-child(4n+4){background:#f1e8fc;color:#5b2d91}.status-badge{background:#eef1f6;color:#374151;border:0;border-radius:999px;padding:4px 12px;font-weight:500}.status-submitted{background:#e8f1fc;color:#17508f}.status-revision{background:#fff0d1;color:#7a4d00}.status-accepted{background:#dff5e7;color:#14683a}.dashboard .button:not(.primary),.page-intro .button:not(.primary){background:transparent;border:1px solid transparent;color:#1557a8;font-weight:500}.dashboard .button:not(.primary):hover,.page-intro .button:not(.primary):hover{background:#e8f2fd;color:#1557a8}.dashboard .button:not(.primary):focus-visible,.page-intro .button:not(.primary):focus-visible{outline:2px solid #1D6FD1;outline-offset:2px}.dashboard .button.primary,.page-intro .button.primary{background:#1d6fd1;border-color:#1d6fd1;color:#fff;font-weight:600;box-shadow:none}.avatar{border:0;border-radius:50%;background:#e3f0fd;color:#17508f;font-weight:600}@media(max-width:760px){.dashboard-panel,.hero{padding:16px}}.today{max-width:1240px;display:flex;flex-direction:column;gap:32px;color:var(--text)}.today-head h1{margin:4px 0 8px}.today-head .eyebrow{margin:0}.today-summary{margin:0;font-size:var(--fs-h2);font-weight:500;color:var(--secondary)}.today-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.today-head-row select{min-height:44px}.today-grid{display:grid;gap:24px;align-items:start}.today-main{display:flex;flex-direction:column;gap:24px;min-width:0}@media(min-width:1200px){.today-grid{grid-template-columns:minmax(0,1fr) 380px}}.today .button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;white-space:nowrap;font-weight:600;text-decoration:none}.today .button.quiet{font-weight:500}.today-focus{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge-strong);overflow:hidden}.focus-band{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:14px 24px;background:var(--course-soft, var(--accent-soft));border-bottom:1px solid color-mix(in srgb,var(--course, var(--accent)) 18%,transparent);color:var(--course-ink, var(--accent-ink));font-size:var(--fs-meta);font-weight:600}.focus-when-group{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;min-width:0}.focus-countdown{color:var(--text);font-size:var(--fs-body);font-weight:700;font-variant-numeric:tabular-nums}.focus-when{text-transform:uppercase;letter-spacing:.06em;font-size:var(--fs-label)}.focus-time{font-variant-numeric:tabular-nums;font-size:var(--fs-body)}.focus-body{display:flex;align-items:center;gap:20px;padding:24px 24px 16px}.focus-avatar{flex:0 0 80px;width:80px;height:80px;display:inline-flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;background:var(--course-soft, var(--accent-soft));color:var(--course-ink, var(--accent-ink));box-shadow:inset 0 0 0 2px var(--course, var(--accent))}.focus-text{min-width:0}.focus-text h2{margin:0 0 4px;font-size:26px;font-weight:700;letter-spacing:-.015em}.focus-text p{margin:0;font-size:var(--fs-body);color:var(--text)}.focus-text small,.focus-course{color:var(--secondary);font-size:var(--fs-meta)}.focus-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.focus-text p.focus-state.is-empty{color:var(--c-amber-ink);font-weight:600}.focus-text p.focus-state.is-live{color:var(--c-green-ink);font-weight:600}.focus-live-dot{width:10px;height:10px;border-radius:50%;background:var(--c-green);animation:focus-pulse 1.6s ease-in-out infinite}@keyframes focus-pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.focus-live-dot{animation:none}}.focus-suggest{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;margin:0 24px 16px 124px;padding:6px 6px 6px 16px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--course-soft, var(--accent-soft)) 55%,var(--surface));border:1px solid color-mix(in srgb,var(--course, var(--accent)) 22%,transparent);font-size:var(--fs-body);color:var(--text)}.focus-suggest>span{min-width:0;overflow-wrap:anywhere}.focus-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 24px 24px 124px}.focus-contact{gap:8px;color:var(--accent-ink);text-decoration:none}.focus-contact-icon{display:inline-flex}.focus-contact-icon svg{width:20px;height:20px}.today-focus-empty{padding:24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.today-focus-empty h2{margin:0}.today-panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge);padding:20px 24px 12px}.today-panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}.today-panel-head h2{margin:0;display:inline-flex;align-items:center;gap:8px}.today-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;border-radius:var(--radius-chip);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-label);font-weight:600}.agenda-group{margin-top:16px}.agenda-group h3{margin:0 0 4px}.today-list{list-style:none;margin:0;padding:0}.today-row{display:flex;align-items:center;gap:16px;min-height:64px;padding:10px 0;border-top:1px solid var(--hairline)}.today-list>.today-row:first-child{border-top:0}.row-text{flex:1 1 auto;min-width:0}.row-text strong{display:block;font-weight:600;font-size:var(--fs-body);overflow-wrap:anywhere}.row-text small{display:block;color:var(--secondary);font-size:var(--fs-meta);margin-top:2px}.row-avatar{flex:0 0 36px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;background:var(--course-soft, var(--accent-soft));color:var(--course-ink, var(--accent-ink))}.row-icon{flex:0 0 40px;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-control);background:var(--course-soft, var(--accent-soft));color:var(--course-ink, var(--accent-ink))}.row-icon svg{width:22px;height:22px}.tone-amber{--course-soft: var(--c-amber-soft);--course-ink: var(--c-amber-ink)}.tone-rose{--course-soft: var(--c-rose-soft);--course-ink: var(--c-rose-ink)}.tone-blue{--course-soft: var(--c-blue-soft);--course-ink: var(--c-blue-ink)}.today-empty{margin:8px 0 12px;color:var(--secondary);font-size:var(--fs-body)}.today-empty strong{color:var(--text)}.today .is-overdue{color:var(--c-rose-ink);font-weight:600}.today .chip{padding:4px 10px;border-radius:var(--radius-chip);font-size:var(--fs-label);font-weight:600;white-space:nowrap}.today .chip-new{background:var(--c-blue-soft);color:var(--c-blue-ink)}.today .chip-submitted{background:var(--c-amber-soft);color:var(--c-amber-ink)}.today .chip-accepted,.today .chip-planned{background:var(--c-green-soft);color:var(--c-green-ink)}.today .chip-noplan{background:var(--c-amber-soft);color:var(--c-amber-ink)}a.pick-row{text-decoration:none}.today .chip-revision{background:var(--c-rose-soft);color:var(--c-rose-ink)}.student-focus{display:grid;grid-template-columns:200px minmax(0,1fr)}.focus-art{display:flex;align-items:center;justify-content:center;background:var(--course-soft, var(--accent-soft));color:var(--course-ink, var(--accent-ink));border-right:6px solid var(--course, var(--accent))}.focus-art svg{width:88px;height:88px}.focus-main{padding:28px 32px}.focus-main .eyebrow{margin:0 0 8px;color:var(--course-ink, var(--accent-ink))}.focus-main h2{margin:0 0 8px;font-size:var(--fs-display);font-weight:700;letter-spacing:-.02em;line-height:1.15}.focus-main>p{margin:0 0 16px;color:var(--secondary)}.focus-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0 0 20px;font-size:var(--fs-body);color:var(--secondary)}.today .focus-start{min-height:52px;padding:0 28px;font-size:17px}.today-done{margin:8px 0 4px;border-top:1px solid var(--hairline)}.today-done summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--accent-ink);font-weight:600;font-size:var(--fs-meta)}.today-done summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}@media(max-width:600px){.today{gap:24px}.today-summary{font-size:17px}.focus-band{padding:12px 16px}.focus-body{padding:16px 16px 12px}.focus-actions{padding:0 16px 16px}.focus-suggest{margin:0 16px 12px}.agenda-row .agenda-actions{flex:1 1 100%;justify-content:flex-start;margin-left:0;padding-left:64px}.focus-avatar{flex-basis:64px;width:64px;height:64px;font-size:26px}.focus-contact{flex:1 1 100%}.focus-actions .button.primary{flex:1 1 auto}.today-panel{padding:16px 16px 8px}.agenda-row .row-avatar{display:none}.hw-row{flex-wrap:wrap;row-gap:8px}.hw-row .row-text{flex:1 1 calc(100% - 56px)}.hw-row .chip{margin-left:56px}.hw-row .button{margin-left:auto}.today-done .hw-row .chip{margin-left:0}.student-focus{grid-template-columns:1fr}.focus-art{height:112px;border-right:0;border-bottom:6px solid var(--course, var(--accent))}.focus-art svg{width:64px;height:64px}.focus-main{padding:20px 16px}.today .focus-start{width:100%}}.focus-meta span+span:before{content:"·";margin-right:12px;color:var(--secondary)}.pick-row:disabled{opacity:.6;cursor:not-allowed}.focus-outline{display:none}.focus-outline>summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;color:var(--accent-ink, var(--accent));font-weight:600}.focus-outline>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.focus-outline ol{margin:0;padding-left:20px;display:grid;gap:4px;color:var(--secondary)}.focus-outline li{overflow-wrap:anywhere}@media(max-width:640px){.focus-outline{margin:0 16px 12px}}.focus-line{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px}.focus-next{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 8px;color:var(--secondary);font-size:var(--fs-body)}.focus-actions .more-menu .more-button{min-height:44px;min-width:44px}.today-grid{grid-template-columns:minmax(0,1fr)}.today-slot-focus{grid-area:focus;min-width:0}.today-inbox{grid-area:inbox;min-width:0}.today-slot-agenda{grid-area:agenda;min-width:0}.today-grid{grid-template-areas:"focus" "inbox" "agenda"}.has-urgent .today-grid{grid-template-areas:"inbox" "focus" "agenda"}@media(min-width:1200px){.today-grid{grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"focus agenda" "inbox agenda";grid-template-rows:auto 1fr}.has-urgent .today-grid{grid-template-areas:"focus agenda" "inbox agenda"}}.nd-item,.nd-in,.nd-card,.nd-collapse-in{min-width:0}.nd-collapse{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:0fr;opacity:0;transition:grid-template-rows .2s ease-out,opacity .2s ease-out}.nd-collapse.is-open{grid-template-rows:1fr;opacity:1}.nd-collapse-in{min-height:0;overflow:hidden}.nd-collapse.is-flush.is-open>.nd-collapse-in{animation:nd-unclip 0s linear .2s forwards}@keyframes nd-unclip{to{overflow:visible}}@media(prefers-reduced-motion:reduce){.nd-collapse{transition:none}.nd-collapse.is-flush.is-open>.nd-collapse-in{animation:none;overflow:visible}}.nd-list{list-style:none;margin:0;padding:0}.nd-item+.nd-item>.nd-collapse>.nd-collapse-in>.nd-in,.nd-group+.nd-item>.nd-collapse>.nd-collapse-in>.nd-in{border-top:1px solid var(--hairline)}.nd-list>.nd-item:first-child>.nd-collapse>.nd-collapse-in>.nd-in{border-top:0}.nd-in{padding:4px 0}.nd-row{display:flex;align-items:center;gap:16px;min-height:64px;padding:10px 0}.nd-act{display:flex;align-items:center;gap:4px;margin-left:auto;flex:0 0 auto}.nd-group{display:flex;align-items:center;gap:10px;padding:12px 0 2px;border-top:1px solid var(--hairline)}.nd-list>.nd-group:first-child{border-top:0}.nd-group strong{font-size:var(--fs-meta);letter-spacing:.02em;color:var(--secondary)}.nd-more{margin:4px 0 8px}.nd-batch{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding:8px 0 12px}.nd-batch span{font-weight:600;color:var(--c-amber-ink)}.nd-card{margin:8px 0;padding:14px 16px;border-radius:var(--radius-control);background:var(--surface);border:1px solid var(--hairline);border-left:4px solid var(--course, var(--accent));box-shadow:var(--edge)}.nd-card-head{display:flex;align-items:center;gap:12px}.nd-card-head .row-text strong{font-weight:700}.nd-chips{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}.today .nd-chip{min-height:44px;padding:0 14px;border:1px solid var(--hairline);background:var(--card, var(--surface));color:var(--text);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer;text-align:left;transition:background .15s ease-out,color .15s ease-out}.today .nd-chip[aria-pressed=true],.today .nd-chip.is-static{background:var(--c-green-soft);color:var(--c-green-ink);border-color:transparent}.today .nd-chip[aria-pressed=true]:before,.today .nd-chip.is-static:before{content:"✓";margin-right:6px}.today .nd-chip.nd-chip-add[aria-pressed=true]:before{content:none}.today .nd-chip-long{min-width:0;max-width:min(270px,100%)}.today .nd-chip-long{display:inline-block;line-height:42px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today .nd-chip.nd-chip-add{border-style:dashed}.today .nd-chip.is-static{cursor:default}.today .nd-chip:focus-visible,.today .nd-finish:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nd-finish{margin-left:auto}.nd-note{display:block;width:100%;min-height:44px;margin-top:12px;padding:10px 12px;font:inherit;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);resize:vertical;box-sizing:border-box}.nd-done{display:flex;align-items:center;gap:10px;margin:8px 0;padding:12px 16px;border-radius:var(--radius-control);background:var(--c-green-soft);color:var(--c-green-ink)}.nd-done strong,.nd-done-tick{font-weight:700}.nd-empty{display:flex;align-items:center;gap:14px;padding:12px 0 16px;animation:nd-fade .2s ease-out}.nd-empty strong{font-size:var(--fs-h3, 18px)}.nd-empty p{margin:2px 0 0;color:var(--secondary)}.nd-empty-tick{flex:0 0 40px;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--c-green-soft);color:var(--c-green-ink);font-weight:700}@keyframes nd-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.nd-empty{animation:none}.today .nd-chip{transition:none}}@media(max-width:600px){.nd-row{flex-wrap:wrap;row-gap:8px}.nd-row .row-text{flex:1 1 calc(100% - 56px)}.nd-act{margin-left:56px;flex:1 1 100%}.nd-finish{flex:1 1 100%;margin-left:0}.nd-card{padding:12px}.nd-batch .button{flex:1 1 100%}}.focus-body{padding-bottom:8px}.focus-text{flex:1 1 auto}.focus-plan{flex-wrap:nowrap;min-width:0}.focus-plan-title{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.focus-plan-meta{flex:none;color:var(--secondary);white-space:nowrap}.focus-actions{padding-top:0;align-items:center}.focus-actions .button{min-height:44px}.prep-view{animation:prep-in .2s ease-out}@keyframes prep-in{0%{opacity:0;transform:translate(8px)}}.lesson-preview{display:grid;gap:16px}.preview-meta{margin:0;color:var(--secondary);font-size:var(--fs-meta)}.preview-lead{margin-bottom:-8px}.lesson-preview h3{margin:0 0 8px;font-size:var(--fs-label);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--secondary)}.preview-steps{margin:0;padding:0 0 0 28px;display:grid;gap:4px;font-size:var(--fs-body)}.preview-steps li{padding-left:4px;overflow-wrap:anywhere}.preview-steps li::marker{color:var(--secondary);font-variant-numeric:tabular-nums}.modal-foot .button.danger{color:var(--c-rose-ink)}@media(prefers-reduced-motion:reduce){.prep-view{animation:none}}.today-slot-agenda .today-panel-head{flex-wrap:nowrap;margin-bottom:8px}.today-slot-agenda .today-panel-head h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px}.today-slot-agenda .today-panel-head .button{flex:none}.agenda-group{margin-top:8px}.agenda-group h3{margin:0 0 8px}.agenda-row{display:grid;grid-template-columns:48px 32px minmax(0,1fr) auto;align-items:center;column-gap:12px;min-height:72px;padding:8px 0}.agenda-when{display:grid;justify-items:center;gap:2px;font-variant-numeric:tabular-nums;line-height:1.2}.agenda-start{font-weight:700;font-size:var(--fs-body);color:var(--text)}.agenda-end{font-size:var(--fs-label);color:var(--secondary)}.agenda-link{position:relative;width:2px;height:12px;border-radius:1px;background:var(--course, var(--accent));opacity:.6}.agenda-link:after{content:"";position:absolute;left:-3px;bottom:-1px;width:6px;height:6px;border-right:2px solid var(--course, var(--accent));border-bottom:2px solid var(--course, var(--accent));transform:rotate(45deg) scale(.8);transform-origin:center}.agenda-row .row-avatar{flex:none;width:32px;height:32px;font-size:14px}.agenda-row .row-text{display:grid;gap:2px;justify-items:start}.agenda-row .row-text strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-row .row-text small{margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-actions{display:flex;align-items:center;gap:4px}.agenda-actions .button{min-height:44px}.agenda-actions .row-menu-trigger{width:44px;min-width:44px;padding:0;border-color:transparent;background:transparent;box-shadow:none;color:var(--secondary)}@media(max-width:640px){.agenda-row,.agenda-row .agenda-actions{padding-left:0}.agenda-row{grid-template-columns:48px minmax(0,1fr) auto;column-gap:12px}.agenda-row .row-avatar{display:none}.agenda-row .agenda-actions{flex:none;margin-left:0}}@media(max-width:640px){.focus-plan{flex-wrap:wrap;gap:0 8px}.focus-plan-title{flex:1 1 100%}.focus-plan-meta{margin-left:0}.focus-plan-meta{order:2}}.today-tomorrow{margin-top:16px;padding-top:12px;border-top:1px solid var(--line,#e3e8ef)}.today-tomorrow .tomorrow-meta{text-transform:none;letter-spacing:0;font-weight:500}.agenda-row .row-text>*{min-width:0;max-width:100%}.agenda-row .row-text .chip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-slot-agenda .agenda-row .row-text{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}.today-slot-agenda .agenda-row .row-text small{flex:1 1 100%;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.today-slot-agenda .agenda-row .agenda-actions{justify-self:end;align-self:center}.today-slot-agenda{container-type:inline-size}@container (max-width: 420px){.today-slot-agenda .agenda-row{grid-template-columns:44px 28px minmax(0,1fr);align-items:start;row-gap:6px;min-height:0;padding:10px 0}.today-slot-agenda .agenda-row .row-avatar{display:block;width:28px;height:28px;margin-top:2px}.today-slot-agenda .agenda-row .row-text{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}.today-slot-agenda .agenda-row .row-text small{flex:1 1 100%;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.today-slot-agenda .agenda-row .chip{padding:1px 8px;font-size:12px}.today-slot-agenda .agenda-row .agenda-actions{grid-column:3;justify-self:start;gap:0;margin:-4px 0 -6px -10px}.today-slot-agenda .agenda-actions .button:not(.row-menu-trigger){min-height:36px;padding:0 10px;border-color:transparent;background:transparent;box-shadow:none;color:var(--accent-ink);font-weight:600}.today-slot-agenda .agenda-actions .button:not(.row-menu-trigger):hover{background:var(--accent-soft)}.today-slot-agenda .agenda-actions .row-menu-trigger{min-height:36px;height:36px}}.today-inbox{container-type:inline-size}@container (max-width: 520px){.nd-row{flex-wrap:wrap;row-gap:8px}.nd-row .row-text{flex:1 1 calc(100% - 56px)}.nd-act{margin-left:56px;flex:1 1 100%}}.builder{color:var(--text)}.builder svg{width:20px;height:20px;flex:none}.builder .builder-toolbar{position:sticky;top:76px;z-index:9;display:flex;align-items:center;gap:8px;max-width:760px;margin:0 auto 8px;padding:8px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.builder .crumb-back{flex:none}.builder .save-note{font-size:var(--fs-meta);color:var(--secondary);padding:0 4px;min-width:0}.builder .save-note.is-saved{color:var(--c-green-ink);font-weight:600}.builder .save-note.is-saved:before{content:"✓ "}.builder .toolbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.builder .builder-toolbar .button{min-height:44px}.builder .doc{max-width:760px;margin:0 auto}.builder input.doc-title{display:block;width:100%;min-height:56px;margin:16px 0 4px;padding:4px 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;font:inherit;font-size:var(--fs-display);font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--text);box-shadow:none}.builder input.doc-title:hover{border-bottom-color:var(--hairline)}.builder input.doc-title:focus-visible{outline:none;border-bottom-color:var(--accent)}.builder ::placeholder{color:#6b7280;opacity:1}.builder .details-grid input,.builder .details-grid select,.builder .advanced textarea,.builder .advanced select{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);font:inherit;color:var(--text)}.builder .advanced textarea{min-height:72px;resize:vertical}.builder label,.type-picker label,.paste-words label{margin:0}.builder label{display:grid;gap:6px;font-size:var(--fs-meta);font-weight:600;color:var(--secondary)}.builder :is(input,textarea,select,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.builder .lesson-details summary,.builder .advanced summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 10px;margin-left:-10px;border-radius:var(--radius-control);color:var(--secondary);font-size:var(--fs-meta);font-weight:600;cursor:pointer}.builder .lesson-details summary:hover,.builder .advanced summary:hover{background:var(--page)}.builder .details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:4px 0 8px;padding:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.builder .section-tabs{display:flex;gap:8px;padding:0;margin:8px 0 4px;border-bottom:0}.builder .section-tabs .button{min-height:44px;border-radius:var(--radius-chip);box-shadow:none}.builder .section-tabs .button.selected{background:var(--accent-soft)!important;color:var(--accent-ink)!important;border-color:transparent}.builder .doc-blocks{list-style:none;margin:8px 0 0;padding:0}.builder .doc-block{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge);transition:border-color .15s,box-shadow .15s}.builder .doc-block:hover{border-color:#c9cfd8}.builder .doc-block.is-active{padding:16px 20px 12px;border-color:#c9cfd8;box-shadow:var(--edge-strong)}.builder .block-read{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:baseline;gap:0 8px;width:100%;min-height:44px;padding:12px 16px 12px 12px;border:0;border-radius:var(--radius-card);background:transparent;font:inherit;text-align:left;color:var(--text);cursor:pointer}.builder .block-no{font-size:var(--fs-meta);font-weight:700;color:var(--accent-ink);font-variant-numeric:tabular-nums}.builder .read-body{display:grid;gap:6px;min-width:0}.builder .read-head{display:flex;align-items:baseline;gap:8px;min-width:0}.builder .read-icon{display:inline-flex;align-self:center;color:var(--secondary)}.builder .read-icon svg{width:18px;height:18px}.builder .read-title{font-size:17px;font-weight:600;overflow-wrap:anywhere}.builder .read-hidden{padding:2px 8px;border-radius:var(--radius-chip);background:var(--c-amber-soft);color:var(--c-amber-ink);font-size:var(--fs-label);font-weight:600}.builder .read-text{font-size:var(--fs-body);line-height:1.7;white-space:pre-line;overflow-wrap:anywhere}.builder .read-empty{justify-self:start;padding:2px 10px;border-radius:var(--radius-chip);background:var(--c-amber-soft);color:var(--c-amber-ink);font-size:var(--fs-meta);font-weight:600;font-style:normal}.builder .read-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.builder .read-option{padding:2px 10px;border:1px solid var(--hairline);border-radius:var(--radius-chip);background:var(--surface);font-size:var(--fs-meta)}.builder .read-option.is-correct{border-color:transparent;background:var(--c-green-soft);color:var(--c-green-ink);font-weight:600}.builder .read-key{font-size:var(--fs-meta);font-weight:600;color:var(--c-green-ink)}.builder .inserter{position:relative;display:flex;justify-content:center;align-items:center;height:16px}.builder .inserter:before{content:"";position:absolute;left:16px;right:16px;top:50%;border-top:2px solid var(--accent);opacity:0;transition:opacity .15s}.builder .insert-btn{position:relative;z-index:2;display:grid;place-items:center;width:44px;height:44px;margin:-16px 0;padding:0;border:1px solid var(--hairline);border-radius:50%;background:var(--surface);color:var(--accent-ink);cursor:pointer;opacity:0;transition:opacity .15s}.builder .inserter:hover:before,.builder .inserter:focus-within:before{opacity:1}.builder .inserter:hover .insert-btn,.builder .insert-btn:focus-visible{opacity:1}.builder .doc-item:hover>.inserter .insert-btn{opacity:.6}.builder .doc-item:first-child{margin-bottom:0}.builder .doc-item+.doc-item{margin-top:0}@media(hover:none){.builder .insert-btn{opacity:1}}.builder .block-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.builder .block-head .block-no{padding:0;min-width:32px}.builder .type-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 12px;border:0;border-radius:var(--radius-chip);background:var(--accent-soft);color:var(--accent-ink);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer;position:relative}.builder .type-chip:after{content:"";position:absolute;inset:-4px 0}.builder .type-chip svg{width:16px;height:16px}.builder .block-tools{display:flex;gap:2px;margin-left:auto}.builder .icon-button{display:inline-grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:var(--secondary);box-shadow:none}.builder .icon-button:hover:not(:disabled){background:var(--page);color:var(--text);transform:none}.builder .icon-button:disabled{opacity:.35}.builder .icon-button.flip svg{transform:rotate(180deg)}.builder .icon-button.danger:hover:not(:disabled){color:var(--c-rose-ink);background:var(--c-rose-soft)}.builder .line-field{display:grid;gap:2px;margin-top:8px}.builder .line-field input,.builder .line-field textarea{width:100%;min-height:44px;padding:8px 0 6px;border:0;border-bottom:2px solid var(--hairline);border-radius:0;background:transparent;font:inherit;font-size:16px;color:var(--text);box-shadow:none;resize:vertical;line-height:1.5}.builder .line-field input:focus-visible,.builder .line-field textarea:focus-visible{outline:none;border-bottom-color:var(--accent)}.builder .line-field>span{order:-1;font-size:var(--fs-label);font-weight:600;color:var(--secondary)}.builder .line-field>small{font-size:var(--fs-label);font-weight:400;color:var(--secondary)}.builder .instruction-field input{font-size:16px;font-weight:500}.builder .editor-body{display:grid;gap:8px;margin-top:4px}.builder .field-stack{display:grid;gap:8px}.builder .sentence-input{font-size:17px!important}.builder .gap-preview{margin:0;padding:10px 14px;border-radius:var(--radius-control);background:var(--page);font-size:17px;line-height:2.2}.builder .gap-anchor{position:relative;display:inline-block}.builder .gap-chip{display:inline-block;font:inherit;border-top:0;border-left:0;border-right:0;cursor:pointer;min-width:48px;margin:0 3px;padding:0 10px;border-radius:10px;background:var(--accent-soft);color:var(--accent-ink);border-bottom:2px solid var(--accent);font-weight:600;text-align:center;line-height:1.7}.builder .option-rows{display:grid;gap:2px;margin-top:4px}.builder .option-row{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--hairline)}.builder .option-row.dragging{opacity:.5}.builder .drag-handle{width:20px;flex:none;color:var(--secondary);font-size:14px;letter-spacing:-3px;text-align:center;cursor:grab;-webkit-user-select:none;user-select:none}.builder .option-letter{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:8px;background:var(--page);color:var(--secondary);font-size:var(--fs-meta);font-weight:700}.builder .option-row.is-correct .option-letter{background:var(--c-green-soft);color:var(--c-green-ink)}.builder input.option-input{flex:1;min-width:0;min-height:44px;padding:0 4px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;font:inherit;font-size:16px;color:var(--text);box-shadow:none}.builder input.option-input:focus-visible{outline:none;border-bottom-color:var(--accent)}.builder .option-fixed{flex:1;min-height:44px;display:flex;align-items:center;padding:0 4px;font-size:16px}.builder .correct-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;flex:none;cursor:pointer}.builder .correct-toggle input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.builder .correct-mark{display:inline-block;width:22px;height:22px;border:2px solid var(--secondary);border-radius:50%}.builder .correct-toggle:hover .correct-mark{border-color:var(--c-green)}.builder .correct-toggle input:checked+.correct-mark{width:auto;height:auto;padding:4px 10px;border:0;border-radius:var(--radius-chip);background:var(--c-green-soft);color:var(--c-green-ink);font-size:var(--fs-label);font-weight:700;white-space:nowrap}.builder .correct-toggle input:focus-visible+.correct-mark{outline:2px solid var(--accent);outline-offset:2px}.builder .correct-toggle input:disabled+.correct-mark{opacity:.4}.builder .correct-toggle:has(input:disabled){cursor:default}.builder .option-remove{display:grid;place-items:center;width:44px;height:44px;flex:none;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:var(--secondary);font-size:14px;cursor:pointer}.builder .option-remove:hover:not(:disabled){background:var(--c-rose-soft);color:var(--c-rose-ink)}.builder .option-remove:disabled{opacity:.35;cursor:default}.builder .option-warning{margin:6px 0 0;font-size:var(--fs-meta);color:var(--c-amber-ink)}.builder .quiet-label{margin:8px 0 0;font-size:var(--fs-label);font-weight:600;color:var(--secondary)}.builder .ghost-add{display:inline-flex;align-items:center;justify-self:start;gap:8px;min-height:44px;padding:0 12px;margin-left:-12px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--accent-ink);font:inherit;font-weight:600;cursor:pointer}.builder .ghost-add:hover{background:var(--accent-soft)}.builder .advanced{margin:12px 0 0;padding-top:4px;border-top:1px solid var(--hairline)}.builder .advanced[open]{display:grid;gap:12px;padding-bottom:8px}.builder .check-label{display:flex;align-items:center;gap:10px;min-height:44px}.builder .check-label input{width:20px;height:20px;accent-color:var(--accent)}.builder .slash-line{display:block;margin:12px 0 0;padding-left:60px}.builder .slash-line input{width:100%;min-height:44px;padding:8px 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;font:inherit;font-size:16px;color:var(--text)}.builder .slash-line input:focus-visible{outline:none;border-bottom-color:var(--accent)}.builder .add-end{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;margin:12px 0 0;border:2px dashed #C3D6EE;border-radius:var(--radius-card);background:transparent;color:var(--accent-ink);font:inherit;font-weight:600;cursor:pointer}.builder .add-end:hover{background:var(--accent-soft);border-color:var(--accent)}.builder .add-row{display:flex;gap:12px;margin:12px 0 0}.builder .add-row .add-end{flex:1 1 0;width:auto;margin:0}.builder .add-end svg{width:20px;height:20px;flex:none}@media(max-width:520px){.builder .add-row{flex-direction:column;gap:8px}}.builder .section-tabs .add-part{gap:6px;background:transparent;border:2px dashed #C3D6EE;color:var(--accent-ink);box-shadow:none}.builder .section-tabs .add-part:hover{background:var(--accent-soft);border-color:var(--accent)}.builder .section-tabs .add-part svg{width:18px;height:18px}.builder .empty-state{padding:24px 0 8px}.builder .empty-state h2{margin:0 0 4px}.builder .empty-state p{margin:0;color:var(--secondary)}.type-picker .picker-search{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--secondary)}.type-picker .picker-search:focus-within{border-color:var(--accent)}.type-picker .picker-search svg{width:20px;height:20px;flex:none}.type-picker .picker-search input{flex:1;min-width:0;min-height:44px;border:0;background:transparent;font:inherit;font-size:16px;color:var(--text);outline:none}.type-picker .picker-keys{margin:6px 0 0;font-size:var(--fs-label);color:var(--secondary)}.type-picker .picker-group{margin:16px 0 6px;font-size:var(--fs-label);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--secondary)}.type-picker .picker-empty{margin:8px 0;color:var(--secondary)}.type-palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0}.type-palette .type-tile{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 12px;border:1px solid transparent;border-radius:var(--radius-control);background:var(--page);color:var(--text);font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.type-palette .type-tile:hover,.type-palette .type-tile:focus-visible{background:var(--accent-soft);color:var(--accent-ink)}.type-palette .type-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.type-palette .type-tile[aria-current=true]{border-color:var(--accent)}.type-icon{display:inline-grid;place-items:center;width:36px;height:36px;flex:none;border-radius:10px;background:var(--surface);color:var(--accent-ink)}.type-icon svg{width:20px;height:20px}.paste-words{display:grid;gap:12px}.link-dialog input{width:100%;min-height:44px}.paste-words .line-field{display:grid;gap:4px;font-size:var(--fs-label);color:var(--secondary)}.paste-words textarea{width:100%;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);font:inherit;font-size:16px;resize:vertical}.paste-preview{width:100%;border-collapse:collapse;font-size:var(--fs-meta)}.paste-preview td{padding:6px 4px;border-bottom:1px solid var(--hairline)}.builder .undo-bar{display:flex;align-items:center;gap:12px;max-width:760px;margin:12px auto 0;padding:8px 8px 8px 16px;background:var(--text);color:#fff;border-radius:16px}.builder .undo-bar .button{min-height:44px;background:#fff;color:var(--text);border:0}.builder .builder-status:empty{display:none}.builder .builder-status{max-width:760px;margin:12px auto 0;color:var(--text)}@media(max-width:760px){.builder .builder-toolbar{position:static;flex-wrap:wrap}.builder .save-note{flex:1}.builder .toolbar-actions{width:100%}.builder .toolbar-actions .button{flex:1;justify-content:center}.builder .doc-block.is-active{padding:10px 12px 8px}.builder .block-read{grid-template-columns:32px minmax(0,1fr);padding:12px 8px}.builder .block-tools{width:100%;justify-content:flex-end;margin-left:0}.builder .drag-handle{display:none}.builder .slash-line{padding-left:0}.type-palette{grid-template-columns:1fr 1fr}.builder .undo-bar{position:fixed;left:16px;right:16px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:30}}@media(prefers-reduced-motion:reduce){.builder *,.type-palette *{transition:none!important}}.builder .empty-state{text-align:center;max-width:520px;margin:0 auto}.builder .empty-state p{text-wrap:balance}.builder .text-link{justify-self:start;min-height:44px;padding:0 8px;margin:4px 0 0 -8px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--accent-ink);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer}.builder .text-link:hover{background:var(--accent-soft)}.builder .doc-block.is-active>.text-link{display:inline-flex;align-items:center}.builder .gap-chip:hover{background:#d6e7fb}.builder .gap-popover{position:absolute;z-index:20;top:calc(100% + 6px);left:0;display:grid;gap:10px;width:260px;padding:12px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-control);box-shadow:var(--edge-strong);line-height:1.4;font-size:var(--fs-body)}.builder .popover-field{display:grid;gap:4px}.builder .popover-field input{min-height:44px;padding:0 10px;border:1px solid var(--hairline);border-radius:var(--radius-control);font:inherit;font-size:16px;color:var(--text)}.builder .popover-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}.builder .popover-actions .ghost-add{margin-left:0}.builder .status-pill{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:0;border-radius:var(--radius-chip);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer;white-space:nowrap}.builder .status-pill.is-draft{background:var(--c-amber-soft);color:var(--c-amber-ink)}.builder .status-pill.is-ready{background:var(--c-green-soft);color:var(--c-green-ink)}.builder .pill-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-chip);background:var(--surface);font-size:var(--fs-label)}.builder .assigned-banner{margin:4px 0 8px;padding:10px 14px;border-radius:var(--radius-control);background:var(--c-amber-soft);color:var(--c-amber-ink);font-size:var(--fs-meta);font-weight:600}.builder .start-options{padding:24px 0 8px}.builder .start-options h2{margin:0 0 12px}.builder .start-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.builder .start-option{display:grid;align-content:start;justify-items:start;gap:6px;min-height:140px;padding:16px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--edge);font:inherit;text-align:left;color:var(--text);cursor:pointer;transition:border-color .15s,transform .12s var(--ease-spring)}.builder .start-option:hover{border-color:var(--accent);transform:translateY(-1px)}.builder .start-option .type-icon{background:var(--accent-soft);margin-bottom:4px}.builder .start-option strong{font-size:var(--fs-body)}.builder .start-option span:last-child{font-size:var(--fs-meta);color:var(--secondary)}.builder .start-option.start-link{grid-column:1 / -1;min-height:0;grid-template-columns:auto 1fr;align-items:center;column-gap:12px}.builder .start-option.start-link .type-icon{grid-row:span 2;margin:0}.modal.picker-modal{display:flex;flex-direction:column;width:min(880px,calc(100% - 32px));height:min(640px,calc(100vh - 48px));max-height:none;padding:0;overflow:hidden;background:var(--surface);border-radius:var(--radius-card)}.picker-head{flex:none;padding:16px 20px 8px;border-bottom:1px solid var(--hairline)}.picker-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.picker-title h2{margin:0;font-size:var(--fs-h2)}.picker-close{display:grid;place-items:center;width:44px;height:44px;margin-right:-8px;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:var(--secondary);cursor:pointer}.picker-close:hover{background:var(--page);color:var(--text)}.picker-close svg{width:24px;height:24px}.picker-head .picker-search{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--secondary)}.picker-head .picker-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.picker-head .picker-search svg{width:20px;height:20px;flex:none}.picker-head .picker-search input{flex:1;min-width:0;min-height:44px;border:0;background:transparent;font:inherit;font-size:16px;color:var(--text);outline:none}.picker-keys{margin:6px 0 0;font-size:var(--fs-label);color:var(--secondary)}.picker-panes{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px}.picker-list{overflow-y:auto;padding:4px 12px 16px}.picker-group{margin:12px 8px 4px;font-size:var(--fs-label);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--secondary)}.picker-empty{margin:24px 8px;color:var(--secondary);font-size:var(--fs-body)}.type-row{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:4px 8px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.type-row.is-previewed{background:var(--page)}.type-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}.type-row[aria-current=true] .type-name:after{content:" ✓";color:var(--accent-ink)}.type-row .type-icon{width:32px;height:32px;border-radius:8px;background:var(--accent-soft)}.type-text{display:grid;min-width:0}.type-name{font-size:14px;font-weight:600;line-height:18px}.type-desc{font-size:var(--fs-meta);line-height:16px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-preview{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:16px 20px 20px;border-left:1px solid var(--hairline);background:var(--page)}.picker-preview .eyebrow{margin:0}.modal .picker-preview h3{display:flex;align-items:center;gap:10px;margin:0;font-size:17px}.picker-preview .preview-desc,.picker-preview .preview-best{margin:0;font-size:var(--fs-meta);color:var(--secondary)}.picker-preview .preview-best strong{color:var(--text)}.picker-preview .button{margin-top:auto;width:100%;min-height:44px}.mini-card{display:grid;gap:10px;padding:14px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);font-size:15px;line-height:1.5;color:var(--text)}.mini-sentence{font-weight:500}.mini-slot{display:inline-block;width:56px;height:1.2em;margin:0 4px;vertical-align:-3px;border-bottom:2px solid var(--accent);background:var(--accent-soft);border-radius:6px 6px 0 0}.mini-row{display:flex;flex-wrap:wrap;gap:6px}.mini-tile,.mini-option{padding:4px 10px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);box-shadow:0 2px 0 var(--hairline);font-size:14px;font-weight:600}.mini-option{min-width:48px;text-align:center}.mini-image{width:100%;max-height:120px;object-fit:cover;border-radius:10px}.mini-pairs{display:grid;gap:6px}.mini-pair{display:flex;align-items:center;gap:8px;color:var(--secondary)}.mini-pair .mini-tile{color:var(--text)}.mini-word{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid var(--hairline);font-size:14px}.mini-word span{color:var(--secondary)}.mini-line{display:block;height:36px;border-bottom:2px solid var(--hairline)}.mini-columns{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mini-column{display:grid;align-content:start;gap:6px;padding:8px;border-radius:10px;background:var(--page);font-size:13px}.mini-media{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--secondary)}.mini-divider{display:flex;align-items:center;gap:8px;font-weight:600}.mini-divider:before,.mini-divider:after{content:"";flex:1;border-top:1px solid var(--hairline)}.mini-answer{display:block;height:56px;border:1px solid var(--hairline);border-radius:10px}@media(max-width:760px){.builder .start-grid{grid-template-columns:1fr}.builder .start-option{min-height:0;grid-template-columns:auto 1fr;align-items:center;column-gap:12px}.builder .start-option .type-icon{grid-row:span 2;margin:0}.modal.picker-modal{inset:24px 0 0;transform:none;width:100%;height:auto;border-radius:var(--radius-card) var(--radius-card) 0 0}.modal.picker-modal[data-state=open]{animation-name:picker-sheet-in}@keyframes picker-sheet-in{0%{transform:translateY(24px)}}.picker-head{padding:12px 16px 8px}.picker-keys{display:none}.picker-panes{grid-template-columns:1fr}.picker-preview{display:none}.type-row{min-height:52px}.builder .toolbar-actions{order:3}}@media(prefers-reduced-motion:reduce){.builder .start-option,.builder .doc-block{transition:none}.builder .start-option:hover{transform:none}}.builder .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.builder .tile-group{display:grid;gap:6px}.builder .tile-group .quiet-label,.builder .order-preview .quiet-label{margin:0}.builder .order-tiles,.builder .order-distractors{display:flex;flex-wrap:wrap;gap:6px}.builder .tile-chip{display:inline-flex;align-items:center;gap:2px;min-height:36px;padding:0 12px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);box-shadow:0 2px 0 var(--hairline);font-size:16px;font-weight:600}.builder .tile-chip.is-extra{padding-right:0;background:var(--page);color:var(--secondary)}.builder .tile-chip button{display:grid;place-items:center;width:36px;height:36px;border:0;background:transparent;color:var(--secondary);cursor:pointer;border-radius:10px;position:relative}.builder .tile-chip button:after{content:"";position:absolute;inset:-4px 0}.builder .tile-chip button:hover{color:var(--c-rose-ink)}.builder .order-preview{display:grid;gap:6px;padding:10px 12px;border-radius:var(--radius-control);background:var(--page)}.builder .drop-zone{position:relative;display:grid;justify-items:center;gap:6px;padding:24px 16px;border:2px dashed #C3D6EE;border-radius:var(--radius-card);background:var(--surface);color:var(--text);text-align:center;cursor:pointer}.builder .drop-zone:hover,.builder .drop-zone.is-over{border-color:var(--accent);background:var(--accent-soft)}.builder .drop-zone:focus-within{outline:2px solid var(--accent);outline-offset:2px}.builder .drop-zone .type-icon{background:var(--accent-soft)}.builder .drop-zone strong{font-size:var(--fs-body)}.builder .drop-zone small{font-size:var(--fs-label);font-weight:400;color:var(--secondary)}.builder .image-preview{display:grid;justify-items:start;gap:4px;margin:8px 0 0}.builder .image-preview img{max-width:100%;max-height:280px;border-radius:var(--radius-control);border:1px solid var(--hairline)}.builder .pairs{display:grid;gap:6px;margin-top:4px}.builder .pair-row{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) 44px;align-items:center;gap:6px}.builder .pair-row input,.builder .column-card input{min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);font:inherit;font-size:16px;color:var(--text)}.builder .pair-row input:focus-visible,.builder .column-card input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.builder .pair-link{text-align:center;color:var(--secondary)}.builder .columns-editor{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:4px;align-items:start}.builder .columns-editor>.ghost-add{margin-left:0}.builder .column-card{display:grid;gap:8px;padding:10px;border-radius:var(--radius-control);background:var(--page)}.builder .column-card input.column-name{font-weight:600}.builder .column-card input.column-add{border-style:dashed;background:transparent}.builder .media-preview{position:relative;justify-self:start;margin:0}.builder .media-preview img{display:block;width:min(360px,100%);aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-control);border:1px solid var(--hairline)}.builder .play-badge{position:absolute;inset:0;margin:auto;display:grid;place-items:center;width:56px;height:40px;border-radius:12px;background:#111827cc;color:#fff;font-size:18px}.builder .media-audio{width:100%}.builder .media-frame{width:100%;height:260px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--page)}.builder .media-card{display:flex;align-items:center;gap:10px;margin:0;padding:12px;border:1px solid var(--hairline);border-radius:var(--radius-control)}.builder .media-card span:last-child{display:grid}.builder .media-card small{font-size:var(--fs-label);color:var(--secondary)}.builder .media-warning{margin:0;padding:8px 12px;border-radius:var(--radius-control);background:var(--c-amber-soft);color:var(--c-amber-ink);font-size:var(--fs-meta)}.builder .student-mock{display:grid;gap:6px;padding:10px 12px;border-radius:var(--radius-control);background:var(--page)}.builder .student-mock .quiet-label{margin:0}.builder .student-mock textarea{width:100%;padding:8px 10px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);font:inherit;resize:none}.builder .student-mock textarea::placeholder{color:var(--secondary)}.builder .mock-button{display:inline-flex;align-items:center;gap:8px;justify-self:start;min-height:44px;padding:0 14px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font-weight:600}@media(max-width:760px){.builder .pair-row{grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) 44px;gap:4px}}.builder .read-tiles{display:flex;flex-wrap:wrap;gap:6px}.builder .read-image{display:block;max-width:200px;max-height:120px;border-radius:10px;border:1px solid var(--hairline);object-fit:cover}.builder .toolbar-actions{flex:none;flex-wrap:nowrap}.builder .save-note{flex:1}.picker-head label{margin:0}:root{--field-bg: #F9FAFB;--field-border: #868E9C;--field-placeholder: #6B7280}.builder .line-field input,.builder .line-field textarea,.builder input.option-input,.builder .slash-line input{min-height:44px;padding:10px 12px;border:1px solid var(--field-border);border-radius:10px;background:var(--field-bg);transition:border-color .12s,box-shadow .12s,background .12s}.builder .line-field textarea{min-height:88px}.builder .line-field input:hover,.builder .line-field textarea:hover,.builder input.option-input:hover,.builder .slash-line input:hover{border-color:var(--text)}.builder .line-field input:focus-visible,.builder .line-field textarea:focus-visible,.builder input.option-input:focus-visible,.builder .slash-line input:focus-visible{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-soft)}.builder input::placeholder,.builder textarea::placeholder{color:var(--field-placeholder);opacity:1}.builder .option-row{border-bottom:0;padding:4px 0}.builder input.doc-title{border-bottom:2px dashed var(--field-border)}.builder input.doc-title:hover{border-bottom-style:solid;border-bottom-color:var(--text)}.builder input.doc-title:focus-visible{border-bottom:2px solid var(--accent)}@media(prefers-reduced-motion:reduce){.builder .line-field input,.builder .line-field textarea,.builder input.option-input,.builder .slash-line input{transition:none}}.builder .option-rows{position:relative;gap:6px}.builder .option-row{gap:8px;padding:0;border-radius:12px;background:var(--surface)}.builder .option-letter{width:36px;height:36px;border-radius:10px;font-size:15px}.builder input.option-input{height:52px;min-height:52px;padding:0 14px;font-size:17px}.builder .option-fixed{min-height:52px;font-size:17px}.builder .correct-toggle{gap:8px;min-width:48px;height:52px;padding:0 8px}.builder .correct-text{visibility:hidden;font-size:var(--fs-meta);font-weight:700;color:var(--c-green-ink);white-space:nowrap}.builder .option-row.is-correct .correct-text{visibility:visible}.builder .correct-mark,.builder .correct-toggle input:checked+.correct-mark{display:grid;place-items:center;box-sizing:border-box;width:32px;height:32px;padding:0;border:2px solid var(--secondary);border-radius:50%;background:transparent;color:transparent;font-size:17px;font-weight:800;line-height:1}.builder .correct-toggle input:checked+.correct-mark{border-color:var(--c-green);background:var(--c-green);color:#fff}.builder .option-remove{width:48px;height:48px;font-size:16px}.builder .drag-handle{display:grid;place-items:center;width:44px;height:48px;flex:none;padding:0;border:0;border-radius:10px;background:transparent;color:var(--secondary);letter-spacing:0;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.builder .drag-handle:hover{background:var(--page);color:var(--text)}.builder .drag-handle[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink)}.builder .grip{width:10px;height:15px;background:radial-gradient(circle,currentColor 1.5px,transparent 1.7px) 0 0 / 5px 5px}.builder .block-head .block-handle{width:44px;height:44px;margin-left:-12px}.builder .doc-block:not(.is-active){display:flex;align-items:flex-start}.builder .doc-block:not(.is-active)>.block-handle{height:44px;margin:6px 0 0 2px}.builder .doc-block:not(.is-active)>.block-read{flex:1;min-width:0;padding-left:2px}.builder .doc-blocks{position:relative}.builder .is-sorting>*{transition:transform .15s cubic-bezier(.2,0,0,1)}.builder .is-sorting>.is-dragging{position:relative;z-index:6;transition:none}.builder .option-row.is-dragging,.builder .option-row.is-lifted{box-shadow:0 8px 24px #11182729,0 0 0 1px var(--hairline)}.builder .doc-item.is-dragging .doc-block,.builder .doc-item.is-lifted .doc-block{border-color:var(--accent);box-shadow:0 12px 32px #1118272e}.builder .option-row.is-lifted,.builder .doc-item.is-lifted{position:relative;z-index:2;transform:scale(1.02)}.builder .drag-placeholder{position:absolute;left:0;right:0;border:2px dashed var(--accent);border-radius:12px;background:color-mix(in srgb,var(--accent-soft) 70%,transparent);pointer-events:none;list-style:none}.builder .doc-blocks>.drag-placeholder{border-radius:var(--radius-card)}.builder .is-sorting .inserter{visibility:hidden}.is-sorting-page,.is-sorting-page *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}@media(max-width:760px){.builder .drag-handle{display:grid}.builder .option-row{gap:4px}.builder .correct-text{display:none}.builder .doc-block.is-active{padding:10px 10px 8px}}@media(prefers-reduced-motion:reduce){.builder .is-sorting>*{transition:none}.builder .option-row.is-lifted,.builder .doc-item.is-lifted{transform:none}}.builder .save-note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.builder .status-pill .pill-count{width:auto;min-width:0;padding:0 8px;border-radius:999px;font-weight:600}.builder input.doc-title{margin-top:40px}.builder .lesson-details>summary{margin-left:0}.builder .lesson-details>summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--hairline);background:var(--surface);color:var(--text);font-weight:600;font-size:var(--fs-meta);cursor:pointer;list-style:none}.builder .lesson-details>summary::-webkit-details-marker{display:none}.builder .lesson-details>summary:after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}.builder .lesson-details[open]>summary:after{transform:rotate(-135deg) translateY(-2px)}.builder .lesson-details>summary:hover{border-color:#868e9c}.builder .start-option .type-icon{width:48px;height:48px}.builder .start-option .type-icon svg{width:26px;height:26px}.builder .slash-line{padding-left:0}.builder-problems{margin:0 0 12px;padding:12px 16px;border-radius:12px;background:var(--c-amber-soft, #FFF3D6);color:var(--text)}.builder-problems ul{margin:6px 0 0;padding-left:20px}.fn-words,.fn-tasks{list-style:none;margin:0;padding:0}.fn-words{display:flex;flex-wrap:wrap;gap:6px}.fn-words li{display:inline-flex;align-items:center;gap:2px;padding-left:12px;border-radius:999px;background:var(--accent-soft);color:var(--text);font-size:var(--fs-meta)}.fn-words b{font-weight:600}.fn-tasks{display:grid;counter-reset:fn}.fn-tasks li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 0;counter-increment:fn}.fn-tasks li+li{border-top:1px solid var(--hairline)}.fn-tasks li:before{content:counter(fn) ".";color:var(--secondary);font-variant-numeric:tabular-nums}.fn-tasks span{display:grid;gap:2px;min-width:0}.fn-tasks b{font-weight:600}.fn-tasks small{color:var(--secondary);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fn-x{width:44px;height:44px;margin:-8px -4px -8px 0;border:0;border-radius:999px;background:transparent;color:var(--secondary);font-size:18px;line-height:1;cursor:pointer;display:inline-grid;place-items:center}.fn-words .fn-x{width:32px;height:32px;margin:0;position:relative}.fn-words .fn-x:after{content:"";position:absolute;inset:-6px}.fn-x:hover{color:var(--error);background:color-mix(in srgb,var(--error) 10%,transparent)}.fn-x:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(min-width:901px){.builder .builder-toolbar{top:8px}}.builder .save-note{flex:none}@media(max-width:1099px)and (min-width:901px){.builder .save-note{display:none}}.bt-short{display:none}@media(max-width:760px){.builder .builder-toolbar{position:sticky;top:calc(var(--app-top) + 4px);flex-wrap:nowrap;gap:4px;padding:4px 6px;min-width:0}.builder .builder-toolbar .crumb-back{flex:none;padding:0 8px}.builder .builder-toolbar .crumb-back span{display:none}.builder .status-pill{flex:1 1 0;min-width:0;justify-content:flex-start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 10px}.builder .status-pill .pill-count,.builder .save-note{display:none}.builder .toolbar-actions{flex:none;width:auto;gap:4px}.builder .toolbar-actions .button{flex:none;padding:0 10px;font-size:13px}.bt-long{display:none}.bt-short{display:inline}}@media(min-width:761px)and (max-width:900px){.builder .builder-toolbar{top:calc(var(--app-top) + 4px)}}main:has(.tasks-page) .assignment-list{display:grid;gap:14px;margin-top:8px}main:has(.tasks-page) .assignment-card{background:#fff;border:0;border-radius:20px;box-shadow:0 8px 24px #1118270f;padding:20px 24px;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:20px;min-width:0}main:has(.tasks-page) .assignment-card>div:first-child{min-width:0;flex:1 1 auto}main:has(.tasks-page) .assignment-card h2{margin:10px 0 6px;font-size:18px;line-height:1.3;color:#111827;overflow-wrap:anywhere}main:has(.tasks-page) .assignment-card p{margin:0;font-size:14px;line-height:1.45;color:#4b5563}main:has(.tasks-page) .assignment-card .card-actions,main:has(.tasks-page) .assignment-card .assignment-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0;max-width:none;justify-content:flex-end;flex:0 0 auto}main:has(.tasks-page) .assignment-card .card-actions>*{flex:0 0 auto}main:has(.tasks-page) .assignment-card .button{min-height:44px;min-width:44px;width:auto;max-width:none;padding:10px 18px;border-radius:999px;font-size:14px;font-weight:600;justify-content:center;text-align:center;background:#fff;color:#111827;border:1px solid #D5DAE1;box-shadow:none}main:has(.tasks-page) .assignment-card .button:hover:not(:disabled){background:#f2f4f7;transform:none}main:has(.tasks-page) .assignment-card .button.primary{background:#1d6fd1;border-color:#1d6fd1;color:#fff}main:has(.tasks-page) .assignment-card .button.primary:hover:not(:disabled){background:#1a63bc}main:has(.tasks-page) .teacher-comment{background:#f5f7fa;border-radius:14px;padding:12px 16px;margin-top:12px;color:#374151}main:has(.tasks-page) .status-badge{display:inline-flex;align-items:center;min-height:28px;padding:4px 12px;border:0;border-radius:999px;background:#eef1f6;color:#374151;font-size:12px;font-weight:700;letter-spacing:.01em}main:has(.tasks-page) .status-badge.status-new{background:#e8f2fd;color:#1557a8}main:has(.tasks-page) .status-badge.status-submitted{background:#fff4d6;color:#6b4a00}main:has(.tasks-page) .status-badge.status-accepted{background:#e3f6ea;color:#156b3a}main:has(.tasks-page) .status-badge.status-revision{background:#fde8e8;color:#9b1c1c}main:has(.tasks-page) .section-tabs{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;margin:0 0 20px;border:0;border-radius:999px;background:#eef1f6;max-width:100%}main:has(.tasks-page) .section-tabs .button{min-height:44px;width:auto;padding:8px 18px;border:0!important;border-radius:999px;background:transparent!important;color:#374151!important;font-size:14px;font-weight:600;box-shadow:none!important;justify-content:center}main:has(.tasks-page) .section-tabs .button:hover:not(:disabled){background:#ffffffb3!important;transform:none}main:has(.tasks-page) .section-tabs .button.selected{background:#fff!important;color:#111827!important;box-shadow:0 2px 8px #1118271f!important}main:has(.tasks-page) .dashboard-panel{background:#fff;border:0;border-radius:20px;box-shadow:0 8px 24px #1118270f}.button:focus-visible,.section-tabs .button:focus-visible{outline:3px solid #1D6FD1;outline-offset:2px}.status-badge.status-new{background:#e8f2fd;color:#1557a8;border-color:transparent}.status-badge.status-submitted{background:#fff4d6;color:#6b4a00;border-color:transparent}.status-badge.status-accepted{background:#e3f6ea;color:#156b3a;border-color:transparent}.status-badge.status-revision{background:#fde8e8;color:#9b1c1c;border-color:transparent}main:has(.tasks-page) .assignment-card .button.quiet{border-color:transparent;color:#1557a8}.row-menu{position:relative;display:inline-flex}main:has(.tasks-page) .assignment-card .row-menu-trigger{padding:0;width:44px;font-size:20px;line-height:1;letter-spacing:.05em;border-color:transparent;color:#374151}.row-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:220px;display:grid;padding:6px;background:#fff;border:1px solid #E6E9EF;border-radius:16px;box-shadow:0 12px 32px #11182724}.row-menu-list [role=menuitem]{min-height:44px;padding:10px 14px;border:0;border-radius:10px;background:transparent;color:#111827;font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer}.row-menu-list [role=menuitem]:hover:not(:disabled),.row-menu-list [role=menuitem]:focus-visible{background:#f2f4f7;outline:none}.row-menu-list [role=menuitem]:focus-visible{box-shadow:inset 0 0 0 2px #1d6fd1}.row-menu-list [role=menuitem].danger{color:#9b1c1c}.row-menu-list [role=menuitem]:disabled{color:#6b7280;cursor:not-allowed}.row-primary{display:grid;gap:4px;justify-items:end}.action-reason{font-size:12px;color:#4b5563;max-width:220px;text-align:right}main:has(.tasks-page) .assignment-card .button:disabled{background:#f2f4f7;color:#6b7280;border-color:#e6e9ef;cursor:not-allowed}.undo-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:16px;max-width:calc(100vw - 32px);padding:8px 8px 8px 20px;border-radius:999px;background:#111827;color:#fff;box-shadow:0 12px 32px #1118273d;font-size:14px;animation:toast-in .2s ease-out}.undo-toast.is-ok{background:var(--c-green-ink);animation:toast-in .25s cubic-bezier(.2,.8,.2,1)}.undo-toast-icon{display:inline-flex;color:#fff}@keyframes toast-in{0%{transform:translate(-50%,12px)}}.task-row.just-accepted{animation:row-accepted 1.8s ease-out}.task-row.just-accepted .status-badge{animation:badge-pop .45s cubic-bezier(.2,1.6,.4,1)}@keyframes row-accepted{0%,40%{background:var(--c-green-soft)}}@keyframes badge-pop{0%{transform:scale(.7)}}@media(prefers-reduced-motion:reduce){.undo-toast.is-ok,.task-row.just-accepted,.task-row.just-accepted .status-badge{animation:none}}.undo-toast .button{min-height:44px;padding:8px 18px;border-radius:999px;border:0;background:#fff;color:#1557a8;font-weight:700;width:auto}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.balance-panel{margin-bottom:24px;padding:24px}.balance-panel p{margin:4px 0 12px;color:#4b5563;font-size:14px}.balance-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.balance-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:8px 16px;border-radius:12px;background:#f5f7fa;flex-wrap:wrap}.balance-owes{color:#9b1c1c;font-weight:700}.balance-ok{color:#156b3a;font-weight:600}@media(max-width:640px){main:has(.tasks-page) .assignment-card{flex-direction:column;align-items:stretch;padding:18px;gap:14px}main:has(.tasks-page) .assignment-card .card-actions,main:has(.tasks-page) .assignment-card .assignment-actions{justify-content:flex-start}main:has(.tasks-page) .section-tabs{display:flex;overflow-x:auto;flex-wrap:nowrap;border-radius:22px}main:has(.tasks-page) .section-tabs .button{flex:0 0 auto;white-space:nowrap}main:has(.tasks-page) .assignment-card .card-actions,main:has(.tasks-page) .assignment-card .assignment-actions{flex-wrap:nowrap;align-items:flex-start}.row-primary{justify-items:start;flex:1 1 auto}.action-reason{text-align:left}.undo-toast{bottom:88px}}@media(prefers-reduced-motion:reduce){main:has(.tasks-page) *{transition:none!important;animation:none!important;transform:none!important}main .undo-toast,.undo-toast{animation:none!important;transform:translate(-50%)!important}}.tasks-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.task-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-left:6px;padding:0 7px;border-radius:var(--radius-chip);background:var(--hairline);color:var(--text);font-size:var(--fs-label);font-weight:700}main:has(.tasks-page) .section-tabs .button.selected .task-count{background:var(--accent-soft);color:var(--accent-ink)}.task-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:var(--course-soft, var(--accent-soft));color:var(--course-ink, var(--accent-ink));font-weight:700;font-size:16px}main:has(.tasks-page) .assignment-list.task-list,main:has(.tasks-page) .task-group{gap:0;background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--edge);border:1px solid var(--hairline);overflow:visible}main:has(.tasks-page) .task-list>.task-row,main:has(.tasks-page) .task-group>.task-row{border-radius:0;box-shadow:none;padding:12px 16px 12px 20px;gap:14px;border-top:1px solid var(--hairline);position:relative}main:has(.tasks-page) .task-list>.task-row:first-child,main:has(.tasks-page) .task-group>.task-group-title+.task-row{border-top:0}main:has(.tasks-page) .task-row:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:var(--course)}main:has(.tasks-page) .task-row.is-done:before{background:var(--hairline)}main:has(.tasks-page) .task-row .task-main{min-width:0;flex:1 1 auto}main:has(.tasks-page) .task-row h2{margin:0 0 2px;font-size:var(--fs-body);font-weight:600}main:has(.tasks-page) .task-row .task-meta{font-size:var(--fs-meta);color:var(--secondary)}.task-student{color:var(--text);font-weight:600}.task-overdue{color:var(--c-rose-ink);font-weight:600}main:has(.tasks-page) .task-row .teacher-comment{margin-top:6px;padding:6px 10px;font-size:var(--fs-meta);border-radius:10px;background:var(--page);max-width:60ch}main:has(.tasks-page) .task-row .status-badge{flex:0 0 auto;min-height:26px}main:has(.tasks-page) .task-row .button{min-height:44px;padding:8px 16px}.task-groups{display:grid;gap:20px}main:has(.tasks-page) .task-groups{gap:20px}.task-group-title{display:flex;align-items:center;gap:4px;min-height:44px;margin:0;padding:10px 20px;font-size:var(--fs-meta)!important;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--secondary);border-bottom:1px solid var(--hairline)}.task-group-title.is-late{color:var(--c-rose-ink)}details.task-group>summary{cursor:pointer;list-style:none;border-bottom:0}details.task-group>summary::-webkit-details-marker{display:none}details.task-group>summary:before{content:"▸";margin-right:6px;transition:transform .15s}details.task-group[open]>summary:before{transform:rotate(90deg)}details.task-group[open]>summary{border-bottom:1px solid var(--hairline)}details.task-group>summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;border-radius:var(--radius-card)}.modal:has(.review-split){width:min(1120px,calc(100% - 32px));max-height:calc(100vh - 32px);padding:24px;background:var(--page);border-radius:var(--radius-card)}.review-split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;margin-top:16px;align-items:start}.review-work{display:grid;gap:12px}.review-item{display:grid;gap:8px;padding:16px 18px;background:var(--surface);border:1px solid var(--hairline);border-radius:16px}.review-item p{margin:0;font-size:var(--fs-body)}.review-answer b{color:var(--text)}.review-waiting{margin:0;color:var(--secondary)}.review-ref{padding-top:12px;padding-bottom:12px}.review-ref summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600}.review-ref-label{padding:2px 8px;border-radius:999px;background:var(--page);color:var(--secondary);font-size:13px;font-weight:600}.review-ref p{margin:8px 0 0;white-space:pre-line}.review-mark{display:inline-block;margin-left:12px;padding:2px 10px;border-radius:999px;font-size:14px;font-weight:600}.review-mark.is-ok{background:var(--c-green-soft);color:var(--c-green-ink)}.review-mark.is-bad{background:var(--c-rose-soft);color:var(--c-rose-ink)}.review-mark.is-bad b{color:inherit}.review-item .card-actions{display:flex;flex-wrap:wrap;gap:8px}.review-item .button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-ink);color:var(--accent-ink)}.review-item .review-choice{display:flex;flex-wrap:nowrap;gap:0}.review-item .review-choice .button{flex:1 1 0;min-width:0;min-height:44px;gap:8px;padding:8px 14px;background:#fff;box-shadow:none;font-weight:600;transform:none}.review-item .review-choice .button:first-child{border-radius:var(--radius-control) 0 0 var(--radius-control)}.review-item .review-choice .button:last-child{border-radius:0 var(--radius-control) var(--radius-control) 0;margin-left:-1px}.review-choice-icon{display:inline-flex;flex:0 0 auto}.review-choice-icon svg{width:20px;height:20px}.review-item .review-choice .review-choice-done{border:1px solid #15803D;color:#156b3a}.review-item .review-choice .review-choice-revision{border:1px solid #B42318;color:#9b1c1c}.review-item .review-choice .review-choice-done:hover:not(:disabled){background:#e3f6ea;color:#156b3a}.review-item .review-choice .review-choice-revision:hover:not(:disabled){background:#fde8e8;color:#9b1c1c}.review-item .review-choice .review-choice-done[aria-pressed=true],.review-item .review-choice .review-choice-done[aria-pressed=true]:hover:not(:disabled){position:relative;z-index:1;background:#15803d;border-color:#15803d;color:#fff}.review-item .review-choice .review-choice-revision[aria-pressed=true],.review-item .review-choice .review-choice-revision[aria-pressed=true]:hover:not(:disabled){position:relative;z-index:1;background:#b42318;border-color:#b42318;color:#fff}.review-item .review-choice .button:focus-visible{position:relative;z-index:2;outline:2px solid var(--accent);outline-offset:2px}@media(max-width:420px){.review-item .review-choice{flex-direction:column}.review-item .review-choice .button:first-child{border-radius:var(--radius-control) var(--radius-control) 0 0}.review-item .review-choice .button:last-child{border-radius:0 0 var(--radius-control) var(--radius-control);margin:-1px 0 0}}.review-split textarea{width:100%;min-height:72px;margin-top:6px;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);font:inherit}.review-panel{position:sticky;top:0;display:grid;gap:16px;padding:18px;background:var(--surface);border:1px solid var(--hairline);border-radius:16px;border-top:6px solid var(--c-amber-ink)}.review-panel.state-revision{border-top-color:var(--c-rose-ink)}.review-panel.state-accepted{border-top-color:var(--c-green-ink)}.review-panel.state-new{border-top-color:var(--c-blue-ink)}.review-state{display:flex;align-items:center;justify-content:space-between;gap:8px}.review-position{font-size:var(--fs-meta);color:var(--secondary);font-weight:600}.review-who{display:flex;align-items:center;gap:12px}.review-who strong{display:block;font-size:var(--fs-body)}.review-who small{color:var(--secondary);font-size:var(--fs-meta)}.review-score{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.review-score div{padding:10px 12px;border-radius:12px;background:var(--page)}.review-score dt{font-size:var(--fs-label);color:var(--secondary)}.review-score dd{margin:2px 0 0;font-size:var(--fs-h2);font-weight:700}.review-decide,.review-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}.review-decide .button,.review-nav .button,.review-all-done{width:100%;min-height:44px}.review-nav{padding-top:12px;border-top:1px solid var(--hairline)}.day-picker{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin-bottom:20px}.day-picker .button{min-width:44px;min-height:44px}main:has(.agenda) .agenda{gap:24px}.agenda-day{display:grid;gap:8px}.agenda-day-title{margin:0;font-size:var(--fs-meta)!important;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--secondary)}main:has(.tasks-page) .agenda-row{position:relative;padding:12px 16px 12px 20px;gap:16px;background:var(--course-soft);box-shadow:none;border:0;border-radius:16px}main:has(.tasks-page) .agenda-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;border-radius:16px 0 0 16px;background:var(--course)}main:has(.tasks-page) .agenda-row.is-cancelled{background:var(--surface)}main:has(.tasks-page) .agenda-row.is-cancelled:before{background:var(--hairline)}main:has(.tasks-page) .agenda-row.is-cancelled h3{text-decoration:line-through;color:var(--secondary)}.agenda-time{display:grid;gap:2px;flex:0 0 76px;align-content:start}.agenda-time strong{font-size:var(--fs-body);font-weight:700;color:var(--course-ink)}.agenda-time small{font-size:var(--fs-label);color:var(--secondary)}.agenda-join{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-meta);font-weight:700;color:var(--course-ink);text-decoration:underline;text-underline-offset:3px}.agenda-main{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0}.agenda-main .task-avatar{background:var(--surface)}.agenda-main h3{margin:0;font-size:var(--fs-body);font-weight:600}.agenda-note{margin:2px 0 0!important;font-size:var(--fs-meta)!important;color:var(--secondary);overflow-wrap:anywhere}.agenda-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}main:has(.tasks-page) .agenda-chips .status-badge{min-height:24px;background:var(--surface);color:var(--text)}main:has(.tasks-page) .agenda-chips .status-badge.session-held{color:var(--c-green-ink)}main:has(.tasks-page) .agenda-row .button:not(.primary):not(:disabled){background:var(--surface)}@media(max-width:900px){.review-split{grid-template-columns:1fr}.review-panel{position:static}}@media(max-width:640px){main:has(.tasks-page) .task-row{flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 12px 12px 18px}main:has(.tasks-page) .task-row .task-main{flex:1 1 calc(100% - 56px)}main:has(.tasks-page) .task-row .assignment-actions{flex:1 1 100%;justify-content:flex-start}main:has(.tasks-page) .task-row .status-badge{order:3}main:has(.tasks-page) .task-row .assignment-actions{order:4;flex:1 1 auto;justify-content:flex-end}main:has(.tasks-page) .agenda-row{flex-direction:row;flex-wrap:wrap;align-items:flex-start;padding:12px 12px 12px 18px}.agenda-time{flex:0 0 64px}.agenda-main{flex:1 1 calc(100% - 80px);align-items:flex-start}main:has(.tasks-page) .agenda-row .card-actions{flex:1 1 100%}.modal:has(.review-split){padding:16px;width:calc(100% - 16px)}.review-decide,.review-nav{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){details.task-group>summary:before{transition:none}}main:has(.tasks-page) .agenda-row>.agenda-time{flex:0 0 76px}main:has(.tasks-page) .agenda-row>.agenda-main{flex:1 1 auto;justify-content:flex-start}main:has(.tasks-page) .agenda-row.is-cancelled .task-avatar{background:var(--course-soft)}@media(max-width:640px){main:has(.tasks-page) .agenda-row>.agenda-time{flex:0 0 64px}main:has(.tasks-page) .agenda-row>.agenda-main{flex:1 1 calc(100% - 80px)}}@media(max-width:640px){main:has(.tasks-page) .task-row{gap:8px 10px}main:has(.tasks-page) .task-row .button{padding:8px 12px}main:has(.tasks-page) .task-row .assignment-actions{gap:4px}}main:has(.tasks-page) .agenda-row{display:flex;align-items:center}main:has(.tasks-page) .assignment-card.agenda-row>.agenda-time{flex:0 0 88px}main:has(.tasks-page) .assignment-card.agenda-row>.agenda-main{flex:1 1 auto}main:has(.tasks-page) .assignment-card .button.primary:hover:not(:disabled){background:#1a64bd;border-color:#1a64bd;color:#fff}.day-picker{align-items:flex-end}.day-picker label{margin:0}.day-picker input{min-height:44px}.day-picker .button.quiet,.day-picker .button.ghost,.day-picker a{font-size:var(--fs-body)}.task-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;margin:0 0 16px}main:has(.tasks-page) .task-toolbar .section-tabs{margin:0}.task-filters{display:flex;flex-wrap:wrap;gap:8px}.task-search{position:relative;display:flex;align-items:center;margin:0}.task-search-icon{position:absolute;left:12px;display:inline-flex;color:var(--secondary);pointer-events:none}.task-search-icon svg{width:18px;height:18px}.task-search input,.task-who select{min-height:44px;margin:0;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-meta)}.task-search input{width:240px;padding:0 12px 0 38px}.task-who{margin:0}.task-who select{padding:0 12px;min-width:160px}.task-search input:focus-visible,.task-who select:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.task-table{--task-cols: minmax(130px, .9fr) minmax(200px, 2.4fr) 120px 88px 208px 208px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.task-head{display:grid;grid-template-columns:var(--task-cols);align-items:center;gap:16px;min-height:44px;padding:0 16px;border-bottom:1px solid var(--hairline);font-size:var(--fs-label);font-weight:600;color:var(--secondary)}.task-sort{display:inline-flex;align-items:center;gap:4px;min-height:44px;margin:0 -8px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--secondary);font:inherit;cursor:pointer}.task-sort:hover{background:var(--page);color:var(--text)}.task-sort[aria-pressed=true]{color:var(--text)}.task-sort:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.task-head-label{display:none}.task-sort-arrow{font-size:11px;opacity:.8}main:has(.tasks-page) .assignment-list.task-rows{display:block;margin:0;background:transparent;border:0;box-shadow:none;border-radius:0}main:has(.tasks-page) .task-rows>.task-trow{display:grid;grid-template-columns:var(--task-cols);align-items:center;gap:16px;min-height:60px;padding:8px 16px;background:transparent;border:0;border-top:1px solid var(--hairline);border-radius:0;box-shadow:none;cursor:pointer;transition:background .12s}main:has(.tasks-page) .task-rows>.task-trow:first-child{border-top:0}main:has(.tasks-page) .task-rows>.task-trow:last-child{border-radius:0 0 var(--radius-card) var(--radius-card)}main:has(.tasks-page) .task-rows>.task-trow:hover{background:var(--page)}main:has(.tasks-page) .task-rows>.task-trow:before{content:none}.task-trow>*{min-width:0}.task-trow .c-student{display:flex;align-items:center;gap:10px}.task-trow .task-avatar{flex-basis:32px;width:32px;height:32px;font-size:14px}.task-trow .task-student{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-body)}main:has(.tasks-page) .task-trow .c-lesson h2{margin:0;font-size:var(--fs-body);font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.task-kind{display:block;font-size:var(--fs-label);color:var(--secondary)}.task-trow .c-due{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-meta);color:var(--text);white-space:nowrap}.task-trow .c-due.task-overdue{color:var(--c-rose-ink);font-weight:600}.task-due-icon{display:inline-flex}.task-due-icon svg{width:16px;height:16px}.task-trow .c-result{font-size:var(--fs-meta);font-variant-numeric:tabular-nums;color:var(--text)}.task-trow .c-status{display:flex;align-items:center;gap:4px}main:has(.tasks-page) .task-trow .status-badge{min-height:26px;padding:4px 10px;white-space:nowrap}.task-comment{position:relative;display:inline-flex}.task-comment-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--secondary);cursor:pointer}.task-comment-btn svg{width:18px;height:18px}.task-comment-btn:hover{background:var(--accent-soft);color:var(--accent-ink)}.task-comment-btn:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.task-tip{position:absolute;z-index:25;right:0;bottom:calc(100% + 4px);width:max-content;max-width:280px;padding:8px 12px;border-radius:10px;background:var(--text);color:#fff;font-size:var(--fs-meta);font-weight:400;line-height:1.4;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s}.task-comment:hover .task-tip,.task-comment-btn:focus-visible+.task-tip{opacity:1;visibility:visible}main:has(.tasks-page) .task-trow .c-action{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:nowrap}main:has(.tasks-page) .task-trow .button{min-height:44px;padding:8px 14px;border-radius:var(--radius-control);font-size:var(--fs-meta);white-space:nowrap}main:has(.tasks-page) .task-trow .button.quiet{background:transparent;border-color:transparent;color:var(--accent-ink)}main:has(.tasks-page) .task-trow .button.quiet:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-ink)}main:has(.tasks-page) .task-trow .row-menu-trigger{background:transparent;border-color:transparent}main:has(.tasks-page) .task-trow .row-menu-trigger:hover:not(:disabled){background:var(--hairline);color:var(--text)}main:has(.tasks-page) .task-trow.is-done .task-student,main:has(.tasks-page) .task-trow.is-done .c-lesson h2{color:var(--secondary)}.tasks-page{container:tasks / inline-size}@container tasks (max-width: 1100px){.task-table{--task-cols: minmax(110px, 1fr) minmax(150px, 1.8fr) 108px 80px 192px 200px}.task-head,main:has(.tasks-page) .task-rows>.task-trow{gap:10px}}@container tasks (max-width: 900px){.task-toolbar{align-items:stretch}.task-filters{width:100%}.task-search{flex:1 1 160px}.task-search input{width:100%}.task-who{flex:1 1 120px}.task-who select{width:100%;min-width:0}.task-head{display:flex;gap:16px;padding:0 12px}.task-head>span:not([data-sort]){display:none}.task-head{align-items:center}.task-head>span.task-head-label[class]{display:inline;color:var(--secondary);font-weight:600}.task-sort{margin:0}main:has(.tasks-page) .task-rows>.task-trow{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"student student status" "lesson lesson lesson" "meta action action";gap:2px 8px;min-height:0;padding:10px 8px 4px 12px}.task-trow .c-student{grid-area:student}.task-trow .c-status{grid-area:status;justify-self:end}.task-trow .c-lesson{grid-area:lesson;padding-top:4px}main:has(.tasks-page) .task-trow .c-lesson h2{white-space:normal}.task-trow .c-due{grid-area:meta}.task-trow .c-result{display:none}main:has(.tasks-page) .task-trow .c-action{grid-area:action}main:has(.tasks-page) .task-rows>.task-trow{position:relative}.task-comment{position:static}.task-tip{inset:52px 12px auto;width:auto;max-width:none}}@media(prefers-reduced-motion:reduce){main:has(.tasks-page) .task-rows>.task-trow,.task-tip{transition:none}}.cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px}.cal-h1{margin:0 4px 0 0;font-size:20px;font-weight:700;letter-spacing:-.01em;line-height:1.2}.cal-left{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.cal-spacer{flex:1 1 0;min-width:0}main:has(.cal-toolbar:not(.is-embedded)){margin:16px auto;padding-top:20px;padding-bottom:20px}.cal-embed{margin-top:24px;padding:24px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface)}.cal-embed h2{margin:0 0 8px}.cal-summary{margin:0 0 12px;color:var(--secondary);font-size:var(--fs-body);font-weight:500}.cal-embed .cal-week,.cal-embed .cal-month{box-shadow:none;border-radius:var(--radius-control)}.cal-nav{display:inline-flex;align-items:center;gap:4px}.cal-left .button,.cal-add{min-height:44px;min-width:44px;padding:8px 16px;font-size:14px;font-weight:600}.cal-nav .button{padding:8px 12px;font-size:20px;line-height:1}.cal-title{margin:0 4px;font-size:18px;font-weight:600;white-space:nowrap;letter-spacing:-.01em;line-height:1.2}.cal-tz{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:var(--radius-chip);background:#eef1f6;color:var(--secondary);font-size:var(--fs-label);font-weight:500}.cal-switch{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:#eef1f6;max-width:100%}.cal-switch .button{min-height:44px;padding:8px 18px;border:0;border-radius:999px;background:transparent;color:#374151;font-size:14px;font-weight:600;box-shadow:none}.cal-switch .button:hover:not(:disabled){background:#ffffffb3;transform:none}.cal-switch .button[aria-pressed=true],.cal-switch .button[aria-pressed=true]:hover:not(:disabled){background:#fff;color:#111827;box-shadow:0 2px 8px #1118271f}.cal-switch .button:focus-visible,.cal-left .button:focus-visible,.cal-add:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.cal-week,.cal-month{max-width:100%;min-width:0;overflow:auto;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.cal-week{overscroll-behavior:contain;scroll-padding-left:56px}.cal-week:focus-visible,.cal-month:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.cal-inner{display:grid;grid-template-columns:56px repeat(7,minmax(84px,1fr));min-width:644px}.cal-corner{position:sticky;top:0;left:0;z-index:6;background:var(--surface);border-bottom:1px solid var(--hairline)}.cal-dayhead{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:center;gap:6px;height:48px;padding:0;background:var(--surface);border-bottom:1px solid var(--hairline);border-left:1px solid var(--hairline);color:var(--secondary);font-size:var(--fs-label);font-weight:600;text-transform:capitalize}.cal-corner{height:48px}.cal-date{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:999px;color:var(--text);font-size:16px;font-weight:600}.cal-dayhead.is-today .cal-dow{color:var(--accent-ink)}.cal-dayhead.is-today .cal-date{background:var(--accent);color:#fff}.cal-gutter{position:sticky;left:0;z-index:5;background:var(--surface)}.cal-hour{position:absolute;right:8px;transform:translateY(-50%);font-size:var(--fs-label);line-height:16px;color:var(--secondary);font-variant-numeric:tabular-nums}.cal-hour.is-first{transform:none}.cal-col{position:relative;border-left:1px solid var(--hairline);cursor:pointer;background-image:repeating-linear-gradient(to bottom,var(--hairline) 0,var(--hairline) 1px,transparent 1px,transparent 64px)}.cal-col:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(to right,#D5DAE1 0,#D5DAE1 4px,transparent 4px,transparent 8px);opacity:.55;-webkit-mask-image:linear-gradient(to bottom,transparent 31px,#000 31px,#000 32px,transparent 32px);mask-image:linear-gradient(to bottom,transparent 31px,#000 31px,#000 32px,transparent 32px);-webkit-mask-size:100% 64px;mask-size:100% 64px}.cal-col.is-weekend{background-color:#fafbfc}.cal-now{position:absolute;left:0;right:0;height:1.5px;margin-top:-.75px;background:#dc2626;pointer-events:none;z-index:3}.cal-now:before{content:"";position:absolute;left:-4px;top:-3.25px;width:8px;height:8px;border-radius:50%;background:#dc2626}.cal-ghost{position:absolute;left:2px;right:2px;z-index:1;box-sizing:border-box;display:flex;align-items:flex-start;padding:3px 8px;border:1.5px dashed var(--accent);border-radius:8px;background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-meta);font-weight:600;font-variant-numeric:tabular-nums;line-height:18px;pointer-events:none;overflow:hidden;white-space:nowrap}.cal-ghost.is-focus{z-index:3;border-style:solid;box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.cal-block{position:absolute;z-index:2;display:flex;flex-direction:column;justify-content:center;gap:0;box-sizing:border-box;padding:4px 8px 4px 6px;overflow:hidden;text-align:left;font:inherit;color:var(--text);background:var(--course-soft);border:0;border-left:3px solid var(--course);border-radius:8px;cursor:pointer;transition:transform .12s,box-shadow .12s}.cal-block:hover{transform:translateY(-1px);box-shadow:0 4px 12px #11182729;z-index:3}.cal-block:focus-visible{outline:3px solid var(--accent);outline-offset:1px;z-index:4}.cal-line{display:flex;align-items:center;gap:6px;flex:none;min-width:0;min-height:20px;font-size:var(--fs-meta);line-height:20px}.cal-face{width:20px;height:20px}.cal-series{flex:none;margin-left:auto;padding:0 6px;border-radius:999px;background:#ffffffbf;color:var(--course-ink);font-size:var(--fs-label);font-weight:700;line-height:18px;font-variant-numeric:tabular-nums}.cal-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.cal-sub{display:flex;align-items:baseline;flex:none;min-width:0;overflow:hidden;font-size:var(--fs-label);line-height:16px;white-space:nowrap}.cal-time{flex:none;color:var(--course-ink);font-weight:600;font-variant-numeric:tabular-nums}.cal-note{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--secondary)}.cal-note:before{content:" · "}.cal-block.is-tall{justify-content:flex-start}.cal-block.is-tall .cal-sub{flex-wrap:wrap;white-space:normal}.cal-block.is-tall .cal-time{flex:1 0 100%}.cal-block.is-tall .cal-note{flex:1 1 100%;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:normal}.cal-block.is-tall .cal-note:before{content:none}.cal-block.is-cancelled,.cal-chip.is-cancelled{background:repeating-linear-gradient(45deg,#eef1f6 0 6px,#f8f9fb 6px 12px);border-left-color:#9ca3af;color:var(--secondary)}.cal-block.is-cancelled .cal-time,.cal-block.is-cancelled .cal-name,.cal-chip.is-cancelled .cal-chip-text{color:var(--secondary);text-decoration:line-through}.cal-block.is-cancelled .cal-face,.cal-chip.is-cancelled .cal-chip-face{filter:grayscale(1);opacity:.7}.cal-block.is-narrow{padding:4px 6px;justify-content:flex-start}.cal-block.is-narrow .cal-sub{flex-direction:column;white-space:normal}.cal-block.is-narrow .cal-note{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.cal-block.is-narrow .cal-note:before{content:none}.cal-block.is-narrow.is-short .cal-note{display:none}.cal-month-inner{min-width:560px}.cal-series-info{margin:12px 0 0;color:var(--secondary);font-size:var(--fs-meta)}.cal-scope,.cal-days{min-width:0;margin:12px 0 0;padding:0;border:0}.cal-scope legend,.cal-days legend{padding:0;font-size:var(--fs-meta);font-weight:600}.cal-radio{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;font-weight:500;cursor:pointer}.cal-radio input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--accent)}.cal-days{display:flex;flex-wrap:wrap;gap:6px}.cal-days legend{flex:0 0 100%;margin-bottom:4px}.cal-daychip{min-width:44px;min-height:44px;padding:0 8px;font-size:14px;font-weight:600;text-transform:capitalize}.cal-daychip[aria-pressed=true],.cal-daychip[aria-pressed=true]:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.cal-daychip:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.cal-month-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--hairline)}.cal-month-head span{padding:12px 8px;font-size:var(--fs-label);font-weight:600;color:var(--secondary);text-transform:capitalize;text-align:center}.cal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-day{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-height:104px;min-width:0;padding:8px;border:0;border-top:1px solid var(--hairline);border-left:1px solid var(--hairline);border-radius:0;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.cal-day:nth-child(-n+7){border-top:0}.cal-day:nth-child(7n+1){border-left:0}.cal-day.is-weekend{background:#fafbfc}.cal-day:hover{background:var(--accent-soft)}.cal-day:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.cal-day.is-outside{background:var(--page);color:var(--secondary)}.cal-day.is-outside .cal-daynum{font-weight:500}.cal-day.is-outside .cal-chip{opacity:.85}.cal-daynum{display:inline-flex;align-items:center;justify-content:center;align-self:center;min-width:28px;height:28px;border-radius:999px;font-size:var(--fs-meta);font-weight:600}.cal-day.is-today .cal-daynum{background:var(--accent);color:#fff;font-weight:700}.cal-chip{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden;padding:2px 6px 2px 4px;border-left:3px solid var(--course);border-radius:6px;background:var(--course-soft);color:var(--course-ink);font-size:var(--fs-label);font-weight:600;line-height:16px;font-variant-numeric:tabular-nums}.cal-chip-face{width:16px;height:16px}.cal-chip-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-more{padding:0 6px;font-size:var(--fs-label);font-weight:600;color:var(--accent-ink)}@media(max-width:640px){.cal-embed{padding:16px}main:has(.cal-toolbar:not(.is-embedded)){margin:8px;padding:16px 12px}.cal-toolbar{gap:8px}.cal-h1{flex:1 1 auto}.cal-add{order:1}.cal-left{order:2;flex-basis:100%}.cal-title{flex-basis:100%;order:3;margin:4px 0 0;font-size:18px;white-space:normal}.cal-tz{order:4}.cal-spacer{display:none}.cal-switch{order:5;flex:1 1 100%}.cal-switch .button{flex:1 1 0;padding:8px 10px}.cal-inner{grid-template-columns:48px repeat(7,minmax(104px,1fr));min-width:776px}.cal-day{min-height:88px;padding:4px}.cal-month-inner{min-width:0}.cal-chip{height:6px;padding:0;border-left:0;background:var(--course)}.cal-chip>*{display:none}.cal-chip.is-cancelled{background:#9ca3af}.cal-more{padding:0 2px}}@media(prefers-reduced-motion:reduce){.cal-block,.cal-daychip{transition:none}.cal-block:hover{transform:none}}.task-kind-pre{color:var(--secondary);font-weight:600}@media(max-width:640px){.agenda .agenda-row.assignment-card{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:8px 12px;padding:12px;min-width:0}.agenda .agenda-row>.agenda-time{flex:0 0 64px}.agenda .agenda-row>.agenda-main{flex:1 1 calc(100% - 80px);min-width:0}.agenda .agenda-row .card-actions{flex:1 1 100%;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:8px;min-width:0;margin:0}.agenda .agenda-row .row-primary{flex:1 1 auto;min-width:0;display:grid;justify-items:start;gap:4px}.agenda .agenda-row .action-reason{overflow-wrap:anywhere;text-align:left}}main:has(.tasks-page) .agenda-row.is-missed:before{background:var(--c-amber, #B7791F)}.cal-block.is-missed,.cal-chip.is-missed{border-left-color:#b7791f;background:repeating-linear-gradient(45deg,#fff7e6 0 6px,#fffbf2 6px 12px)}.cal-block.is-missed .cal-time,.cal-block.is-missed .cal-name{color:#7a4b00}.review-top-note{padding:12px 16px;border-radius:12px;background:var(--surface);color:var(--text);margin:0 0 12px}.review-pending{color:var(--secondary);font-style:italic}.review-confirm{display:grid;gap:8px;padding:12px 16px;border-radius:12px;background:var(--c-amber-soft, #FFF3D6);color:var(--text)}.review-confirm p{margin:0}.review-decide+.action-reason{max-width:none;text-align:left;display:block;margin-top:4px}.review-split:focus{outline:none}.review-item.review-auto{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:6px}.review-auto-line{margin:0;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}.review-auto-q{min-width:0;overflow-wrap:anywhere;color:var(--secondary)}.review-auto-line .review-answer{margin:0}.review-sendback{flex:none;min-height:44px;padding:0 12px;border:0;background:transparent;color:var(--accent-ink, var(--accent));font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer;border-radius:var(--radius-control)}.review-sendback:hover{background:var(--page)}.review-sendback:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-foot .review-bar{width:100%;display:grid;gap:8px}.modal-foot .review-bar .review-decide{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.modal-foot .review-bar .review-decide .button{width:auto;flex:0 1 auto}.modal-foot .review-bar .action-reason{max-width:none;text-align:right}.modal-foot .review-bar .review-confirm{text-align:left}@media(max-width:760px){.modal-foot .review-bar .review-decide{display:grid;grid-template-columns:1fr 1fr}.modal-foot .review-bar .review-decide .button{width:100%;min-width:0}.modal-foot .review-bar .action-reason{text-align:left}}.modal:has(.next-step){width:min(560px,calc(100% - 32px));padding:24px;background:var(--page);border-radius:var(--radius-card)}.next-step{display:grid;gap:12px;animation:next-step-in .2s ease-out}.next-step-sum{margin:0;display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--secondary);font-weight:600}.next-step-h{margin:4px 0 0;font-size:var(--fs-body)}.next-step-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.next-step-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 14px;background:var(--surface);border:1px solid var(--hairline);border-radius:16px}.next-step-row.is-info{background:transparent}.next-step-text{flex:1 1 200px;min-width:0}.next-step-draft{color:var(--secondary);font-style:italic}.next-step-acts{display:flex;flex-wrap:wrap;gap:8px}.next-step-row select{min-height:44px;max-width:100%;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);font:inherit;padding:0 10px}.next-step-ok{color:var(--success, #1a7f4b);font-weight:700}.next-step-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px}@keyframes next-step-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.next-step{animation:none}}.chat-context{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 0;padding:6px 6px 6px 12px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;font-weight:600}.lv-wrap .next-step-row{align-items:flex-start}.lv-msg{white-space:pre-line;display:inline-block;margin-top:4px;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.course-grid{margin-top:20px}.shelf{--bk-w: 136px;--bk-h: 184px;--bk-board: 8px;--bk-pad: 24px;margin-top:16px;padding:0 0 16px;border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--hairline);min-width:0;max-width:100%}.shelf-scroll{overflow-x:auto;overscroll-behavior-x:contain;padding:24px var(--bk-pad) 4px;scrollbar-width:thin}.shelf-row{position:relative;display:flex;align-items:flex-start;gap:32px;width:max-content;min-width:100%;margin:0;padding:0;list-style:none}.shelf-row:before{content:"";position:absolute;left:calc(var(--bk-pad) * -1);right:calc(var(--bk-pad) * -1);top:var(--bk-h);height:var(--bk-board);background:var(--hairline)}.shelf-item{position:relative;flex:none;width:calc(var(--bk-w) + 16px)}.shelf-caption{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:calc(var(--bk-board) + 12px);min-width:0}.shelf-name{margin:0;font-size:15px;font-weight:700;line-height:1.25;color:var(--text);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.shelf-caption .course-stats{font-size:var(--fs-label);line-height:1.35}.shelf-caption .assigned-count{position:relative;z-index:1;margin:0 0 0 -8px;padding:4px 8px;color:var(--secondary)}.shelf-caption .avatar-stack{flex-wrap:wrap}.shelf-item .stretched-link:focus-visible{outline:none}.shelf-item:has(.stretched-link:focus-visible) .bk-cover{outline:3px solid var(--course, var(--accent));outline-offset:3px}.bk-cover{position:relative;display:flex;align-items:center;justify-content:center;width:var(--bk-w);height:var(--bk-h);overflow:hidden;border-radius:3px 9px 9px 3px;background:linear-gradient(115deg,#fff3 0,#fff0 46%),var(--course, var(--accent));color:#fff}.bk-cover-level{max-width:100%;padding:0 8px 0 24px;box-sizing:border-box;font-size:calc(var(--bk-w) * var(--lv, .3));font-weight:800;line-height:1;letter-spacing:-.02em;text-align:center;overflow-wrap:anywhere}.bk-cover-img{display:block;width:100%;height:100%;object-fit:cover}.bk-cover-spine{position:absolute;left:0;top:0;bottom:0;width:16px;background:linear-gradient(90deg,#0000004d 0,#00000014 60%,#ffffff3d 74%,#00000024 82%,#0000)}.shelf-item:hover .bk-cover{background:linear-gradient(115deg,#fff3 0,#fff0 46%),var(--course-ink, var(--accent-ink))}.course-level{background:var(--course-soft, var(--accent-soft));color:var(--course-ink, var(--accent-ink))}.course-stats{margin:0;font-size:var(--fs-meta);color:var(--secondary)}.avatar-stack{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-meta);color:var(--secondary)}.avatar-stack-faces{display:inline-flex}.stack-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:-8px;border:2px solid var(--surface);border-radius:50%;font-size:var(--fs-label);font-weight:700;background:var(--c-blue-soft);color:var(--c-blue-ink)}.stack-avatar:first-child{margin-left:0}.stack-avatar.tone-1{background:var(--c-amber-soft);color:var(--c-amber-ink)}.stack-avatar.tone-2{background:var(--c-violet-soft);color:var(--c-violet-ink)}.stack-avatar.more{background:var(--page);color:var(--secondary)}.course-create{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:260px;padding:24px;text-align:center;border:2px dashed var(--accent);border-radius:var(--radius-card);background:transparent;color:var(--text);text-decoration:none}.course-create strong{font-size:36px;color:var(--accent);line-height:1}.course-create h2{font-size:18px;margin:0}.course-create p{color:var(--secondary);margin:0}.course-create:focus-visible,.breadcrumbs a:focus-visible{outline:3px solid var(--course, var(--accent));outline-offset:2px}.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:4px;list-style:none;margin:0 0 4px;padding:0;color:var(--secondary);font-size:14px}.breadcrumbs li{display:flex;align-items:center;min-width:0;overflow-wrap:anywhere}.breadcrumbs li+li:before{content:"›";margin-right:4px;color:var(--secondary)}.breadcrumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent-ink);text-decoration:none}.breadcrumbs a:hover{text-decoration:underline;text-underline-offset:3px}.breadcrumbs [aria-current]{color:var(--text);font-weight:400}.crumbs-bar{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}.crumb-back{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 12px 0 6px;border-radius:10px;color:var(--accent-ink);font-size:14px;font-weight:600;text-decoration:none}.crumb-back:hover{background:var(--page)}.crumb-back:focus-visible{outline:3px solid var(--course, var(--accent));outline-offset:2px}.crumb-back svg{width:20px;height:20px;transform:rotate(-90deg);flex-shrink:0}.breadcrumbs.is-muted a{color:var(--secondary)}.breadcrumbs li.is-back{margin-right:2px}@media(max-width:900px){.crumbs-bar .breadcrumbs li:not(:last-child):not(.is-back){display:none}.crumbs-bar .breadcrumbs li:last-child:not(.is-back){font-weight:600}.crumbs-bar .breadcrumbs li+li:before{content:none}.crumbs-bar .breadcrumbs li.is-back+li:before{content:"›"}}.chip-draft{background:var(--c-amber-soft);color:var(--c-amber-ink)}.page-actions{display:flex;align-items:center;gap:8px}.stretched-link{color:inherit;text-decoration:none}.stretched-link:after{content:"";position:absolute;inset:0;border-radius:inherit}.stretched-link:focus-visible{outline:none}.more-menu{position:relative}.more-button{min-width:44px;min-height:44px;justify-content:center;font-size:20px;line-height:1}.more-menu-list{position:absolute;right:0;top:calc(100% + 4px);z-index:20;display:flex;flex-direction:column;min-width:200px;padding:6px;background:#fff;border-radius:16px;box-shadow:0 8px 24px #1118271f}.more-menu-list [role=menuitem]{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:#111827;font:inherit;text-align:left;cursor:pointer}.more-menu-list [role=menuitem]:hover,.more-menu-list [role=menuitem]:focus-visible{background:#e8f2fd;color:#1557a8;outline:none}.more-menu-list .danger{color:#b42318}.more-menu-list svg{width:20px;height:20px}.course-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.filters-toggle{display:none}.filter-fields{display:flex;gap:8px}.page-actions:focus-within{z-index:30;position:relative}@media(max-width:640px){.course-filters .search{flex:1 1 100%}.filters-toggle{display:inline-flex;min-height:44px}.course-filters:not(.open) .filter-fields{display:none}.page-intro.section-heading{flex-wrap:wrap}.shelf{--bk-w: 112px;--bk-h: 152px;--bk-pad: 16px}.bk-cover-level{padding-left:20px}.shelf-row{gap:24px}}.button.quiet{min-height:44px}:root{--app-top: 0px}@media(max-width:900px){:root{--app-top: 64px}}.sticky-sentinel{display:block;height:1px;margin-bottom:-1px;pointer-events:none}.sticky-head{position:sticky;top:var(--app-top);z-index:14;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;box-sizing:border-box;margin-bottom:16px;background:var(--page)}.sticky-head h1,.page-intro.sticky-head h1{margin:0;min-width:0;max-width:none;font-size:var(--fs-display);line-height:1.15}.sticky-head.is-stuck{box-shadow:0 1px 0 var(--hairline)}.sticky-head.is-stuck h1{font-size:22px}.sticky-head .page-actions{flex:none}.wv-head{justify-content:flex-start}.wv-head-title{flex:1;min-width:0}.wv-head-title h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-head .crumb-back{flex:none}.wv-short,.wv-actions-row{display:none}@media(max-width:640px){.wv-head .wv-hide-narrow{display:none}.wv-actions-row{display:flex;gap:8px;margin:0 0 8px}.wv-long{display:none}.wv-short{display:inline}.sticky-head h1{font-size:26px}.sticky-head.is-stuck h1{font-size:20px}.sticky-head .crumb-back span{display:none}}@media(prefers-reduced-motion:no-preference){.sticky-head h1{transition:font-size .15s ease-out}}html{scroll-padding-top:calc(var(--app-top) + 80px)}.context-menu-list{min-width:220px}.more-menu-list [role=menuitem]:disabled{color:var(--secondary);cursor:not-allowed;background:transparent}.item-card,.folder-card,.shelf-item{-webkit-touch-callout:none}.shelf-caption .shelf-foot{position:relative;z-index:1;display:flex;align-items:center;gap:4px;margin-left:-8px}.shelf-foot .assigned-count{margin:0}.shelf-foot .more-button{min-width:44px;padding:0;border-color:transparent;background:transparent;box-shadow:none;color:var(--secondary)}.confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}.confirm-actions .button{min-width:44px}.button.danger-solid{border-color:#b42318;background:#b42318;color:#fff}.button.danger-solid:hover:not(:disabled){background:#8f1b12;border-color:#8f1b12;color:#fff}.mat-toast{position:fixed;z-index:80;left:50%;bottom:16px;transform:translate(-50%);display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;max-width:calc(100vw - 32px);box-sizing:border-box;min-height:52px;padding:4px 4px 4px 20px;background:#111827;color:#fff;border-radius:16px;box-shadow:0 8px 24px #11182747}.mat-toast .button{min-height:44px;background:transparent;border-color:#fff;color:#fff;box-shadow:none}.mat-toast .button:hover:not(:disabled){background:#ffffff29;color:#fff}.mat-toast-close{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius-control);background:transparent;color:#fff;cursor:pointer}.mat-toast-close:hover{background:#ffffff29}.mat-toast-close svg{width:20px;height:20px}@media(max-width:900px){.mat-toast{bottom:calc(88px + env(safe-area-inset-bottom))}}.screen-form .screen-drop{min-height:160px}.screen-preview{display:grid;gap:8px;margin:0}.screen-preview img{display:block;max-width:100%;max-height:50vh;margin:0 auto;object-fit:contain;border:1px solid var(--hairline);border-radius:var(--radius-sm, 10px);background:#fff}.students-screen{max-width:1240px}.chip-paused{background:var(--hairline);color:var(--secondary)}.st-avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--course-soft);color:var(--course-ink);font-weight:700;font-size:18px}.st-avatar-large{width:72px;height:72px;font-size:30px;background:var(--surface)}.st-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:24px 0 16px}.st-toolbar .search{flex:1 1 260px;margin:0}.st-filters{display:flex;flex-wrap:wrap;gap:8px}.st-filter{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--hairline);border-radius:var(--radius-chip);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s,color .15s}.st-filter:hover{background:var(--accent-soft);color:var(--accent-ink)}.st-filter[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-ink);color:var(--accent-ink)}.st-filter:focus-visible,.st-name:focus-visible,.sp-tile:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.st-count{min-width:22px;padding:1px 6px;border-radius:var(--radius-chip);background:var(--page);color:var(--secondary);text-align:center}.st-filter[aria-pressed=true] .st-count{background:var(--surface);color:var(--accent-ink)}.st-filter-link{color:var(--accent-ink)}.st-list{list-style:none;margin:0;padding:0;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface);overflow:hidden}.st-row{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto 64px auto;align-items:center;gap:16px;min-height:72px;padding:12px 16px 12px 20px;transition:background .15s}.st-row+.st-row{border-top:1px solid var(--hairline)}.st-row:hover{background:var(--page)}.st-main{min-width:0}.st-name{color:var(--text);font-size:var(--fs-body);font-weight:600;text-decoration:none}.st-name:after{content:"";position:absolute;inset:0}.st-now{margin:2px 0 0;color:var(--secondary);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-level{font-weight:600}.st-status{justify-self:start}.st-dots{display:inline-flex;gap:6px}.st-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.st-dot.chip-accepted{background:var(--c-green)}.st-dot.chip-submitted{background:#b7791f}.st-dot.chip-revision{background:var(--c-rose-ink)}.st-dot.chip-new{background:var(--c-blue)}.st-dot-empty{background:transparent;border:2px solid var(--hairline)}.st-action,.st-dots{position:relative;z-index:1}.st-action{min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}.st-empty{padding:24px;color:var(--secondary)}.sp-header{display:grid;grid-template-columns:auto minmax(240px,1fr) minmax(280px,400px);align-items:center;gap:24px;padding:24px;border-radius:var(--radius-card);background:var(--course-soft)}.sp-header h1{margin:0}.sp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:8px 0 0;color:var(--text);font-size:var(--fs-meta)}.sp-course{margin:8px 0 0;color:var(--course-ink);font-weight:600}.sp-next{display:grid;gap:8px;justify-items:start;padding:16px;border-radius:16px;background:var(--surface);box-shadow:var(--edge)}.sp-next .eyebrow{color:var(--secondary)}.sp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.sp-actions .button{white-space:nowrap}.sp-actions .button,.sp-actions .more-button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.sp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;margin-top:24px}.sp-card{padding:24px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface)}.sp-card h2{margin:0 0 16px}.sp-progress{grid-column:1 / -1}.sp-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sp-tile{display:grid;gap:4px;min-height:44px;padding:16px;border-radius:16px;background:var(--page);color:var(--text);text-decoration:none;transition:background .15s}.sp-tile:hover{background:var(--accent-soft)}.sp-tile strong{font-size:28px;line-height:1}.sp-tile small{color:var(--accent-ink);font-weight:600}.sp-notes label:first-of-type{margin-top:0}.sp-parent p{display:grid;gap:4px;margin:0 0 8px}@media(max-width:1180px){.sp-header{grid-template-columns:auto minmax(0,1fr)}.sp-next{grid-column:1 / -1;justify-items:stretch}}@media(max-width:900px){.sp-header{grid-template-columns:auto minmax(0,1fr)}.sp-next{grid-column:1 / -1;justify-items:stretch}.sp-actions .button.primary{flex:1 1 100%}.sp-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.st-row{grid-template-columns:44px auto auto minmax(0,1fr);grid-template-areas:"avatar main main main" "avatar status dots action";gap:4px 8px;padding:12px 4px 4px 12px}.st-action{padding:0 8px}.st-row .st-avatar{grid-area:avatar;align-self:start}.st-main{grid-area:main}.st-status{grid-area:status}.st-dots{grid-area:dots}.st-action{grid-area:action;justify-self:end}.st-now{white-space:normal}.sp-header{padding:16px;gap:16px}.st-avatar-large{width:56px;height:56px;font-size:24px}.sp-card{padding:16px}.sp-tiles{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.st-filter,.st-row,.sp-tile{transition:none}}.sp-avatar-btn{position:relative;display:inline-flex;padding:0;border:0;border-radius:50%;background:none;cursor:pointer}.sp-avatar-edit{position:absolute;right:-2px;bottom:-2px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--surface);color:var(--text);box-shadow:0 0 0 2px var(--course-soft)}.sp-avatar-edit svg{width:14px;height:14px}.avatar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;justify-items:center}.avatar-option{display:inline-flex;padding:4px;border:2px solid transparent;border-radius:50%;background:none;cursor:pointer}.avatar-option:hover{border-color:var(--hairline)}.avatar-option[aria-pressed=true]{border-color:var(--text)}@media(max-width:400px){.avatar-grid{grid-template-columns:repeat(3,1fr)}}.st-row{grid-template-columns:44px minmax(0,1fr) auto auto}.st-status{display:inline-flex;flex-wrap:wrap;gap:6px;justify-self:start}.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}@media(max-width:640px){.st-row{grid-template-columns:44px auto minmax(0,1fr);grid-template-areas:"avatar main main" "avatar status action"}.st-status{grid-area:status}}.sp-lessonline{margin:4px 0 0;color:var(--secondary);font-size:var(--fs-meta)}.sp-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:16px}.sp-card-head h2{margin:0}.sp-session{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:24px;padding:16px 24px}.sp-session h2{margin:0 0 4px;font-size:var(--fs-body)}.sp-session p{margin:0}.sp-session-actions{display:flex;flex-wrap:wrap;gap:8px}.sp-session-actions .button{min-height:44px;display:inline-flex;align-items:center}.sp-muted{color:var(--secondary)}.sp-hw-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.sp-hw-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:4px 12px;min-height:56px;padding:8px 0}.sp-hw-row+.sp-hw-row{border-top:1px solid var(--hairline)}.sp-hw-main{display:grid;gap:4px;min-width:0}.sp-hw-main small{color:var(--secondary);font-size:var(--fs-meta)}.sp-hw-main .sp-comment{font-style:italic}.sp-hw-row .button{min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}.sp-lessons{list-style:none;margin:0 0 8px;padding:0;display:grid}.sp-lesson{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 8px;border-radius:12px;color:var(--secondary);font-size:var(--fs-meta);text-decoration:none}.sp-lesson:hover{background:var(--page)}.sp-lesson-title{flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.3}.sp-lesson small{color:var(--secondary);font-weight:600}.sp-dot{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;border-radius:50%;border:2px solid var(--hairline);background:var(--surface);color:var(--course-ink);font-size:13px;font-weight:700}.sp-lesson.is-done .sp-dot{background:var(--course-soft);border-color:var(--course)}.sp-lesson.is-current{color:var(--text);font-weight:700}.sp-lesson.is-current .sp-dot{background:var(--course);border-color:var(--course);box-shadow:0 0 0 4px var(--course-soft)}.sp-tile .sp-hard{color:var(--text);font-weight:400}.sp-after{margin:0 0 12px;padding:12px;border-radius:12px;background:var(--page);font-size:var(--fs-meta)}.sp-summary{margin-top:16px;padding-top:16px;border-top:1px solid var(--hairline);display:grid;gap:8px;justify-items:start}.sp-summary h3{margin:0;font-size:var(--fs-body)}.sp-summary-text{margin:0;white-space:pre-line;font-size:var(--fs-meta);-webkit-user-select:all;user-select:all}.sp-summary .button{min-height:44px}.cal-fold{margin-top:16px}.cal-fold .cal-embed{margin-top:12px}@media(max-width:640px){.sp-session{padding:16px}.sp-hw-row{grid-template-columns:minmax(0,1fr)}.sp-hw-row>.button{justify-self:start;margin-top:4px}}.sp-more{min-height:44px;margin-bottom:8px}.sp-next h2.eyebrow{margin:0}.sp-plan{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;font-size:var(--fs-meta)}.sp-plan .button{min-height:44px;padding-inline:8px}.sp-hw-meta,.sp-hw-row .chip+span{white-space:nowrap}.sp-grid>:last-child:nth-child(odd){grid-column:1 / -1}.student-profile>.activity,.student-profile>.cal-fold{margin-top:24px}.activity-empty{grid-template-columns:1fr;grid-template-areas:none;gap:4px;padding-block:16px}.activity-empty h2{margin:0;font-size:var(--fs-body)}.activity-empty p{margin:0}.button.sm{position:relative;min-height:36px;padding:0 12px;display:inline-flex;align-items:center;white-space:nowrap}.button.sm:after{content:"";position:absolute;inset:-4px -2px}.sp-hw-row .button.sm{min-height:36px}.sp-hw-main>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.sp-hw-row{grid-template-columns:minmax(0,1fr)}.sp-hw-row>.button{justify-self:stretch;justify-content:center;margin-top:4px}.sp-hw-row>.button.sm{min-height:44px}}.sp-cols{display:grid;grid-template-columns:repeat(var(--cols, 1),minmax(0,1fr));gap:16px 24px;align-items:start}.sp-col-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--hairline)}.sp-col-head h3{margin:0;font-size:var(--fs-body)}.sp-unit-count{color:var(--course-ink);font-size:var(--fs-meta)}.sp-lessons li{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .2s ease,opacity .2s ease}.sp-lessons li>div{min-height:0;overflow:hidden}.sp-lessons li.is-out{grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .2s ease,opacity .2s ease,visibility 0s .2s}.sp-lesson-title b{color:var(--secondary);font-weight:600;margin-right:4px;font-variant-numeric:tabular-nums}.sp-lesson>small{white-space:nowrap}.sp-chip-next{padding:2px 8px;border-radius:999px;background:var(--course-soft);color:var(--course-ink)!important;font-size:12px}.sp-lesson.is-done .sp-dot{background:var(--c-green-soft);border-color:var(--c-green);color:var(--c-green-ink)}.sp-lesson.is-next{background:var(--course-soft)}.sp-lesson.is-next .sp-dot{background:var(--course);border-color:var(--course)}.sp-col{min-width:0}.sp-col>.sp-more{margin:0 0 0 8px;padding-left:0;justify-content:flex-start}.sp-lesson.is-current{background:var(--course-soft)}.sp-lesson.is-next{color:var(--text)}.sp-lesson.is-locked,.sp-lesson.is-todo{color:var(--secondary)}.sp-lesson.is-locked .sp-dot svg{width:14px;height:14px}.sp-tabs{display:none;gap:8px;overflow-x:auto;margin-bottom:8px}.sp-tab{min-height:44px;padding:0 16px;border:1px solid var(--hairline);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-meta);font-weight:600;white-space:nowrap;cursor:pointer;transition:background .2s,border-color .2s}.sp-tab[aria-selected=true]{background:var(--course-soft);border-color:var(--course)}@media(max-width:640px){.sp-tabs{display:flex}.sp-cols{grid-template-columns:minmax(0,1fr)}.sp-col:not(.is-active){display:none}.sp-col.is-active{animation:sp-col-in .2s ease}.sp-col-head{display:none}.sp-more{width:100%}}@keyframes sp-col-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.sp-lessons li,.sp-lessons li.is-out,.sp-tab{transition:none}.sp-col.is-active{animation:none}}.sp-pay{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.sp-pay.is-urgent .button.primary{font-weight:700}.sp-addcontact{margin-left:8px}.sp-contact-form{display:grid;gap:8px}.sp-contact-form label{display:grid;gap:4px;font-size:var(--fs-meta)}.sp-grid>.sp-parent{grid-column:1 / -1}.sp-parent .sp-addcontact{margin-left:0;justify-self:start}.sp-grid>.sp-notes:nth-last-child(2){grid-column:1 / -1}@media(max-width:640px){.activity:not(.activity-empty){grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "stats" "body"}.activity .stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.activity:not(.activity-empty){grid-template-areas:"head" "stats" "toggle" "body"}.activity .activity-toggle{grid-area:toggle;justify-self:start}}a.chip{text-decoration:none}a.chip:hover{text-decoration:underline}.sp-head-actions{display:flex;flex-wrap:wrap;gap:4px}.sp-notelist{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sp-notelist li{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;align-items:baseline;font-size:var(--fs-meta)}.sp-note-date{font-weight:600;min-height:44px;display:inline-flex;align-items:center}.sp-dep{margin:0 0 8px;font-size:var(--fs-meta)}.sp-parent>.button{margin-top:8px;min-height:44px}.sp-report{display:grid;gap:12px}.sp-report textarea{width:100%;min-height:200px;font:inherit}.as-fixed{margin:0;font-weight:600}.undo-toast .button{min-height:44px}.ms-bulk,.ms-done{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 0}.ms-bulk .button,.ms-done .button{min-height:44px}.ms-pick{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.ms-pick input{width:20px;height:20px}.assignment-card.is-selected{outline:2px solid var(--c-blue, #2563eb);outline-offset:-2px}.sp-homework{container-type:inline-size}.sp-hw-row .chip{white-space:nowrap}.sp-hw-row>.sp-hw-actions{grid-column:2 / -1;display:flex;flex-wrap:wrap;gap:8px}@media(max-width:640px){.sp-hw-row>.sp-hw-actions{grid-column:1 / -1}.sp-hw-actions>.button{flex:1;justify-content:center;min-height:44px}}@media(min-width:641px){@container (max-width: 460px){.sp-homework .sp-hw-row>.sp-hw-actions{grid-column:1 / -1}.sp-homework .sp-hw-row{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}.sp-homework .sp-hw-row>.eyebrow{grid-column:1 / -1}.sp-homework .sp-hw-main>strong,.sp-homework .sp-hw-main>span{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}}.sp-header{background:var(--card);border:1px solid var(--hairline)}.sp-header .sp-avatar-btn{align-self:start}.sp-course{color:var(--text);display:flex;align-items:center;gap:8px}.sp-course:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--course);flex:none}.sp-meta>span:first-child{padding:2px 10px;border-radius:999px;background:var(--track);font-weight:600}.sp-header .sp-next{background:var(--page);box-shadow:none}.sp-actions-tail{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.sp-hw-main small{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}.sp-hw-main small time{white-space:nowrap}.sp-homework,.sp-tiles{container-type:inline-size}@container (max-width: 420px){.sp-hw-row{grid-template-columns:minmax(0,1fr)}.sp-hw-row>.button,.sp-hw-row>.sp-hw-actions{justify-self:start;margin-top:4px}}.sp-tile small{white-space:nowrap}.sp-tile small.sp-hard{white-space:normal}@container (max-width: 340px){.sp-tile{padding:12px}}@media(max-width:1199px){.st-now{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.wb{display:flex;flex-direction:column;gap:8px;min-width:0}.wb-stage{position:relative;min-height:420px;min-width:0}.wb-head{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}.wb-title{margin:0 8px 0 0;font-size:var(--fs-h2);font-weight:600;letter-spacing:-.01em;white-space:nowrap}.wb-student{min-width:0}.wb-student select{min-height:44px;font-weight:600;font-size:var(--fs-body);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-control);max-width:100%}.wb-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:0 14px;font-size:var(--fs-meta);font-weight:600;color:var(--text);text-decoration:none}.wb-icon-btn.primary{color:#fff}.wb-icon-btn.danger{color:var(--c-rose-ink)}.wb-icon-btn svg{width:20px;height:20px;flex-shrink:0}.wb .more-menu .more-button{min-height:44px;min-width:44px}.wb .more-menu-list{z-index:30}.wb-room{position:relative;padding:12px 16px 16px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface)}.wb-room-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.wb-room-head h2{margin:0;font-size:var(--fs-body)}.wb-room-text{margin:4px 0 0;max-width:640px;color:var(--secondary);font-size:var(--fs-meta);line-height:1.45}.wb-room-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.wb-status{margin:8px 0 0;font-size:var(--fs-meta);font-weight:600;color:var(--text)}.wb-status:empty{display:none}.wb-paste{display:grid;gap:8px;width:min(480px,100%);margin-top:12px}.wb-paste label{display:grid;gap:6px;font-size:var(--fs-meta);font-weight:600;color:var(--text)}.wb-paste input{min-height:44px}.wb-paste-actions{display:flex;gap:8px}.wb-paste-actions .button{min-height:44px}.wb-error{margin:0;color:var(--c-rose-ink);font-size:var(--fs-meta)}.sb{display:flex;flex-direction:column;gap:8px;height:100%;min-height:0;min-width:0}.sb-toolbar{display:flex;align-items:center;gap:8px;min-height:48px;min-width:0}.sb-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.sb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:0 14px;font-size:var(--fs-meta);font-weight:600;color:var(--text)}.sb-btn svg{width:20px;height:20px;flex-shrink:0}.sb-btn:disabled{opacity:.5;cursor:not-allowed}.sb-compact .sb-btn{padding:0}.sb-body{display:flex;flex:1 1 auto;gap:8px;min-height:0;min-width:0}.sb-canvas{position:relative;flex:1 1 auto;min-width:0;min-height:0;border:1px solid var(--hairline);border-radius:var(--radius-card);background:#fff;overflow:hidden}.sb-canvas>.excalidraw-wrapper,.sb-canvas .excalidraw{height:100%}.sb-skeleton{position:absolute;inset:0;display:grid;place-items:center;background:var(--surface)}.sb-skeleton-bar{position:absolute;top:16px;left:50%;transform:translate(-50%);width:min(420px,80%);height:44px;border-radius:12px;background:var(--track, #E5E8EC);animation:sb-pulse 1.2s ease-in-out infinite}.sb-skeleton-dot{width:56px;height:56px;border-radius:16px;background:var(--accent-soft);animation:sb-pulse 1.2s ease-in-out infinite}@keyframes sb-pulse{50%{opacity:.5}}.sb-toast{position:absolute;left:50%;bottom:72px;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:4px;max-width:calc(100% - 32px);padding:4px 4px 4px 16px;border-radius:14px;background:var(--text);color:#fff;font-size:var(--fs-meta);font-weight:600;box-shadow:0 8px 24px #11182733}.sb-toast>span{padding:10px 12px 10px 0}.sb-toast-undo{min-height:44px;min-width:44px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:#9cc8ff;font:inherit;font-weight:700;cursor:pointer}.sb-toast-undo:focus-visible{outline:2px solid #fff;outline-offset:2px}.sb-error{margin:0;padding:24px;text-align:center;color:var(--secondary)}.sb-full{position:fixed;inset:0;z-index:1000;height:100dvh;padding:8px;background:var(--page, #F4F5F7)}.sb .excalidraw :is(.layer-ui__wrapper,.App-top-bar,.App-bottom-bar,.mobile-misc-tools-container){display:none}.sbt{display:flex;flex-direction:column;gap:8px;flex:0 0 auto;width:200px;padding:8px;overflow:visible;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface)}.sbt{user-select:none;-webkit-user-select:none}.sbt-group{display:grid;gap:6px}.sbt-tools,.sbt-history{grid-template-columns:repeat(2,1fr)}.sbt-colors,.sbt-sizes{grid-template-columns:repeat(3,1fr);justify-items:center}.sbt-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:48px;min-height:56px;padding:6px 4px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font-size:var(--fs-label);font-weight:600;line-height:1.15}.sbt-btn svg{width:28px;height:28px}.sbt-btn:hover:not(:disabled){background:var(--accent-soft)}.sbt-btn[aria-pressed=true],.sbt-btn[aria-pressed=true]:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.sbt-btn.sbt-danger{color:var(--c-rose-ink)}.sbt-swatch{width:48px;height:48px;border:3px solid var(--surface);border-radius:50%;box-shadow:0 0 0 1px var(--hairline);cursor:pointer}.sbt-swatch[aria-pressed=true]{box-shadow:0 0 0 3px var(--text)}.sbt-size{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text)}.sbt-size[aria-pressed=true]{background:var(--accent-soft);border:2px solid var(--accent-ink)}.sbt-dot{display:block;border-radius:50%;background:currentColor}.sbt-compact{width:116px}.sbt-compact .sbt-btn{min-height:48px}.sbt-compact .sbt-btn svg{width:24px;height:24px}@media(max-width:900px){.wb-stage{min-height:770px}.sb-body{flex-direction:column-reverse}.sbt{width:auto;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 6px;padding:4px;overflow:visible;border-radius:16px}.sbt-group{display:flex;gap:4px}.sbt-tools{order:1}.sbt-history{order:2}.sbt-sizes{order:3}.sbt-colors{order:4}.sbt-btn{min-height:52px;min-width:48px;padding:4px 2px}.sbt-tools .sbt-btn{min-width:52px}.sbt-btn svg{width:24px;height:24px}.sbt-swatch,.sbt-size{width:48px;height:48px}.sbt-compact{width:auto}}@media(max-width:900px){.sb-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sb-btn{padding:0}.sb-toolbar,.sb-actions,.wb-head{gap:4px}.wb-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.wb-student{flex:1 1 auto}.wb-student select{width:100%}.sb-canvas{border-radius:16px}}.sbs{position:absolute;z-index:20;top:0;right:0;bottom:0;width:min(480px,100%);display:flex;flex-direction:column;min-height:0;background:var(--surface);border-left:1px solid var(--hairline);box-shadow:-8px 0 24px #1118271f}.sbs.sbs-wide{width:min(760px,88%)}.sbs[hidden]{display:none}.sbs-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 4px 0 14px}.sbs-head h2{margin:0;font-size:var(--fs-body)}.sbs-head-actions{display:flex}.sbs-iconbtn{display:inline-grid;place-items:center;min-width:40px;min-height:40px;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:inherit;cursor:pointer}.sbs-iconbtn:hover{background:#1118270f}.sbs-iconbtn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink)}.sbs-tabs,.sbs-seg{display:flex;gap:2px;padding:2px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--page)}.sbs-tabs{margin:4px 12px 0}.sbs-tabs button,.sbs-seg button{flex:1 1 auto;min-width:0;min-height:34px;padding:0 6px;border:0;border-radius:8px;background:transparent;color:var(--secondary);font:inherit;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.sbs-seg button{flex:1 1 auto;padding:0 8px}.sbs-tabs button:hover,.sbs-seg button:hover{color:var(--text);background:#1118270a}.sbs-tabs button[aria-selected=true],.sbs-seg button[aria-pressed=true]{background:var(--surface);color:var(--accent-ink);font-weight:600;box-shadow:0 0 0 1px var(--hairline)}.sbs-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.sbs-fixed{flex:none;display:grid;gap:6px;padding:8px 12px 6px}.sbs-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;display:grid;gap:8px;align-content:start;padding:4px 12px 12px}.sbs-pad{margin:12px}.sbs-row{display:flex;gap:6px;min-width:0}.sbs-status{margin:0;padding:6px 12px;border-top:1px solid var(--hairline);font-size:var(--fs-meta);font-weight:600}.sbs-status:empty{display:none}.sbs-status.alert{color:var(--c-rose-ink)}.sbs-note{margin:0;color:var(--secondary);font-size:var(--fs-meta);line-height:1.4}.sbs-error{margin:0;color:var(--c-rose-ink);font-size:var(--fs-meta)}.sbs-off{display:grid;justify-items:start;gap:10px}.sbs-off p{margin:0;line-height:1.45}.sbs-off .button,.sbs-form .button,.sbs-upload,.sbs-more,.sbs-coll-head .button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.sbs-search,.sbs-select,.sbs-form input{box-sizing:border-box;min-height:38px;padding:0 10px;font-size:15px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface)}.sbs-search{flex:1 1 auto;min-width:0}.sbs-select{flex:0 1 150px;min-width:0;max-width:45%}.sbs-form input{width:100%}.sbs-search:focus,.sbs-select:focus,.sbs-form input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.sbs-form{display:grid;gap:8px}.sbs-form label{display:grid;gap:6px;font-size:var(--fs-meta);font-weight:600}.sbs-form .button{justify-self:start}.sbs-block{display:grid;justify-items:start;gap:8px}.sbs-upload svg,.sbs-form .button svg{width:20px;height:20px}.sbs-chips{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;max-height:82px;overflow-y:auto}.sbs-chip{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 10px;border:1px dashed var(--accent);border-radius:var(--radius-chip);background:var(--surface);color:var(--accent-ink);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.sbs-chip small{font-weight:400;color:var(--secondary);font-size:12px}.sbs-chip.on{padding:0 2px 0 10px;border-style:solid;background:var(--accent-soft);cursor:default}.sbs-chip.on button{display:inline-grid;place-items:center;min-width:28px;min-height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.sbs-chip.on button svg{width:18px;height:18px}.sbs-count{margin:0;color:var(--secondary);font-size:13px}.sbs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.sbs-wide .sbs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sbs-card{position:relative;display:flex;flex-direction:column;width:100%;padding:0;overflow:hidden;text-align:left;font:inherit;color:inherit;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);cursor:grab}.sbs-card:hover:not(:disabled){border-color:var(--accent)}.sbs-card:disabled{opacity:.6;cursor:progress}.sbs-card.in{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.sbs-thumb{position:relative;display:flex;height:132px;background:#fff}.sbs-thumb img{width:100%;height:100%;object-fit:contain;object-position:top center}.sbs-noimg{padding:6px;overflow:hidden;font-size:12px;color:var(--secondary)}.sbs-plus{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent-ink);color:#fff;box-shadow:0 1px 4px #1118274d}.sbs-plus svg{width:16px;height:16px}.sbs-card.in .sbs-plus{background:#fff;color:var(--accent-ink)}.sbs-cap{display:block;padding:5px 8px;overflow:hidden;border-top:1px solid var(--hairline);font-size:13px;line-height:1.3;white-space:nowrap;text-overflow:ellipsis;color:var(--secondary)}.sbs-recent h3{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--secondary)}.sbs-recent ul{display:flex;gap:6px;margin:0;padding:0 0 4px;overflow-x:auto;list-style:none}.sbs-recent li{flex:none}.sbs-recent button{display:block;width:92px;height:64px;padding:0;overflow:hidden;border:1px solid var(--hairline);border-radius:8px;background:#fff;cursor:pointer}.sbs-recent img{width:100%;height:100%;object-fit:contain;object-position:top center}.sbs-coll{display:grid;gap:8px}.sbs-coll-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.sbs-coll-head h3{margin:0;font-size:var(--fs-body);min-width:0;overflow-wrap:anywhere}.sbs-coll-head h3 small{color:var(--secondary);font-weight:400}.sbs-pics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none}.sbs-pic{display:block;width:100%;aspect-ratio:1;padding:0;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--radius-control);background:#fff;cursor:pointer}.sbs-pic img{width:100%;height:100%;object-fit:cover}.sbs-pic:disabled{opacity:.6;cursor:progress}.sb-correct{position:absolute;z-index:15;box-sizing:border-box;max-width:calc(100% - 8px);padding:0 10px;border:2px solid #17803D;border-radius:10px;background:#fff;color:#17803d;font:inherit;font-weight:600}.sb-correct:focus-visible{outline:3px solid var(--accent-soft);outline-offset:1px}.sbt-pos{grid-template-columns:repeat(2,1fr)}.sbt-pos-btn{min-height:48px;min-width:48px;padding:0 6px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer}.sbt-pos-btn[aria-pressed=true]{background:var(--accent-soft);border:2px solid var(--accent-ink)}@media(max-width:900px){.sbs,.sbs.sbs-wide{position:fixed;z-index:40;inset:auto 0 0;width:auto;height:70vh;height:70dvh;border-left:0;border-top:1px solid var(--hairline);border-radius:16px 16px 0 0;box-shadow:0 -8px 24px #11182724}.sbs-widebtn{display:none}.sbs.sbs-wide .sbs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sbs-iconbtn{min-width:44px;min-height:44px}.sbs-tabs button,.sbs-seg button{min-height:44px}.sbs-search,.sbs-select,.sbs-form input{min-height:44px;font-size:16px}.sbs-chip{min-height:44px}.sbs-chip.on button{min-width:44px;min-height:44px}.sbs-off .button,.sbs-form .button,.sbs-upload,.sbs-more,.sbs-coll-head .button{min-height:44px}.sbs-recent button{height:60px}.sbt-pos{order:1}.sbt-tools{flex-wrap:wrap;justify-content:center}}@media(prefers-reduced-motion:reduce){.wb *,.sb *{transition:none!important;animation:none!important}}.sb-pages{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:18;display:flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--hairline);border-radius:14px;background:var(--surface);box-shadow:0 6px 20px #11182726}.sb-page-btn{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--text);font-size:26px;line-height:1;cursor:pointer}.sb-page-btn svg{width:22px;height:22px}.sb-page-btn:hover:not(:disabled){background:var(--accent-soft)}.sb-page-btn:disabled{opacity:.4;cursor:not-allowed}.sb-page-of{min-width:56px;text-align:center;font-size:var(--fs-meta);font-weight:700;color:var(--text)}.sb-area{position:absolute;inset:0;z-index:15;cursor:crosshair;touch-action:none;background:#1d6fd10f}.sb-area-hint{position:absolute;top:12px;left:50%;transform:translate(-50%);max-width:calc(100% - 24px);padding:8px 14px;border-radius:12px;background:var(--text);color:#fff;font-size:var(--fs-meta);font-weight:600;pointer-events:none}.sb-area-box{position:absolute;border:2px solid var(--accent-ink);background:#1d6fd11f;pointer-events:none}.sb-locks{position:absolute;inset:0;z-index:14;pointer-events:none;overflow:hidden}.sb-lock{position:absolute;display:grid;place-items:center;width:44px;height:44px;min-width:0;min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--text);cursor:pointer;pointer-events:none;opacity:0;transition:opacity .12s ease}.sb-lock[data-show=true]{opacity:1;pointer-events:auto}.sb-lock:focus-visible{opacity:1;pointer-events:auto;outline:2px solid var(--accent-ink);outline-offset:-2px;border-radius:12px}.sb-lock-chip{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);box-shadow:0 2px 6px #11182729}.sb-lock:hover .sb-lock-chip{background:var(--accent-soft)}.sb-lock svg{width:20px;height:20px}.sb-lock[data-locked=true]{color:var(--accent-ink)}@media(prefers-reduced-motion:reduce){.sb-lock{transition:none}}.sbt-variants{display:grid;gap:4px}.sbt-var{display:flex;align-items:center;justify-content:flex-start;white-space:nowrap;min-width:48px;min-height:44px;padding:0 12px;text-align:left;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer}.sbt-var[aria-pressed=true]{background:var(--accent-soft);border:2px solid var(--accent-ink)}.sbt-seg{display:flex;flex-wrap:wrap;gap:1px;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--hairline)}.sbt-seg-btn{display:grid;place-items:center;flex:1 0 44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:0;background:var(--surface);color:var(--text);cursor:pointer}.sbt-seg-btn svg{width:22px;height:22px}.sbt-seg-btn:hover:not(:disabled){background:var(--accent-soft)}.sbt-seg-btn[aria-pressed=true],.sbt-seg-btn[aria-pressed=true]:hover:not(:disabled){background:var(--accent-ink);color:#fff}.sbt-seg-btn:disabled{opacity:.4;cursor:not-allowed}.sbt-seg-btn.sbt-danger{color:var(--c-rose-ink)}.sbt-seg-btn:focus-visible{outline:2px solid var(--accent-ink);outline-offset:-3px}.sbt-pop-anchor{position:relative}.sbt-pop{position:absolute;z-index:25;top:calc(100% + 4px);left:0;width:max-content;min-width:100%;padding:6px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);box-shadow:0 8px 24px #11182729}@media(max-width:900px){.sbt-seg{flex-wrap:nowrap}.sbt-pop-anchor,.sbt-history,.sbt-zoom{order:2}.sbt-pos{order:1}.sbt-pop{top:auto;bottom:calc(100% + 4px)}}.sb-ctx{position:absolute;z-index:40;display:grid;min-width:200px;padding:6px;border:1px solid var(--hairline);border-radius:14px;background:var(--surface);box-shadow:0 8px 24px #1118272e}.sb-ctx button{display:flex;align-items:center;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-weight:600;text-align:left;cursor:pointer}.sb-ctx button:hover:not(:disabled),.sb-ctx button:focus-visible{background:var(--accent-soft);outline:none}.sb-ctx button:disabled{opacity:.5;cursor:not-allowed}.sb-ctx .sb-ctx-danger,.sb-del{color:var(--c-rose-ink, #B3261E)}.sb-confirm{position:absolute;left:50%;top:16px;z-index:40;transform:translate(-50%);width:min(360px,calc(100% - 24px));padding:12px 16px;border:1px solid var(--hairline);border-radius:14px;background:var(--surface);box-shadow:0 8px 24px #1118272e}.sb-confirm p{margin:0 0 8px;font-weight:600}.sb-confirm div{display:flex;gap:8px}.sb-confirm button{min-height:44px;padding:0 14px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.sb-confirm .sb-confirm-yes{border-color:transparent;background:var(--c-rose-ink, #B3261E);color:#fff}.settings-page{max-width:1080px}.settings-page label{margin:0;display:block;font-size:inherit}.settings-page input{min-height:44px;width:auto;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-control);padding:8px 12px;color:var(--text)}.settings-page input[aria-invalid]{border-color:var(--c-rose-ink)}.cfg-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.cfg-status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-meta);color:var(--secondary);min-height:32px}.cfg-status.saved{color:var(--c-green-ink)}.cfg-status svg{width:18px;height:18px}.cfg-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:start}.cfg-nav{position:sticky;top:96px;display:grid;gap:4px}.cfg-nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 14px;border-radius:var(--radius-control);color:var(--secondary);font-weight:500;transition:background .15s,color .15s}.cfg-nav a svg{width:20px;height:20px}.cfg-nav a:hover{background:var(--surface);color:var(--text)}.cfg-nav a[aria-current]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.cfg-sections{display:grid;gap:24px;min-width:0}.cfg-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge);scroll-margin-top:96px;overflow:hidden}.cfg-card-head{padding:20px 24px 16px}.cfg-card-head h2{outline-offset:4px}.cfg-card-head p{font-size:var(--fs-meta);margin-top:4px}.cfg-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 32px;align-items:center;padding:16px 24px;border-top:1px solid var(--hairline)}.cfg-row-text{min-width:0}.cfg-label{font-size:var(--fs-body);font-weight:600;color:var(--text)}.cfg-help{font-size:var(--fs-meta);margin-top:2px;max-width:56ch}.cfg-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin-top:4px;font-size:var(--fs-label);color:var(--secondary);min-height:24px}.cfg-reset.button{min-height:44px;margin:-10px 0;padding:0 10px;font-size:var(--fs-label);font-weight:600;opacity:0;transition:opacity .15s}.cfg-row:hover .cfg-reset,.cfg-row:focus-within .cfg-reset{opacity:1}@media(hover:none){.cfg-reset.button{opacity:1}}.cfg-control{display:grid;justify-items:end;gap:6px;min-width:0}.cfg-error{color:var(--c-rose-ink);font-size:var(--fs-meta);font-weight:500;max-width:300px;text-align:right}.cfg-text{width:280px!important;max-width:100%}.cfg-time{width:132px!important}.cfg-stepper{display:inline-flex;align-items:center;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface)}.cfg-stepper.invalid{border-color:var(--c-rose-ink)}.cfg-stepper:focus-within{border-color:var(--accent)}.settings-page .cfg-stepper input{border:0;width:72px;text-align:right;padding:8px 4px;font-variant-numeric:tabular-nums;background:transparent}.cfg-unit{min-width:44px;padding:0 8px 0 4px;color:var(--secondary);font-size:var(--fs-meta)}.cfg-step.button{min-width:44px;padding:0;justify-content:center;transform:none!important;box-shadow:none;width:44px;height:44px;border:0;background:transparent;color:var(--accent-ink);font-size:20px;line-height:1;border-radius:var(--radius-control)}.cfg-step:hover:not(:disabled){background:var(--accent-soft)}.cfg-seg-wrap{display:grid;justify-items:end;gap:8px}.cfg-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;background:var(--page);border-radius:var(--radius-control)}.cfg-seg-opt{position:relative}.cfg-seg-opt input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;min-height:0!important;width:100%!important}.cfg-seg-opt span{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:56px;padding:0 12px;border-radius:10px;font-size:var(--fs-meta);font-weight:500;color:var(--secondary);white-space:nowrap;transition:background .15s,color .15s}.cfg-seg-opt:hover span{color:var(--text)}.cfg-seg-opt input:checked+span{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--edge)}.cfg-seg-opt input:focus-visible+span{outline:3px solid var(--accent);outline-offset:1px}.settings-page .cfg-switch{appearance:none;-webkit-appearance:none;position:relative;width:56px;height:44px;min-height:44px;padding:0;border:0;background:transparent;cursor:pointer}.cfg-switch:before{content:"";position:absolute;left:4px;right:4px;top:10px;height:24px;border-radius:999px;background:#6b7280;transition:background .15s}.cfg-switch:after{content:"";position:absolute;left:7px;top:13px;width:18px;height:18px;border-radius:50%;background:var(--surface);transition:transform .18s var(--ease-spring)}.cfg-switch:checked:before{background:var(--accent)}.cfg-switch:checked:after{transform:translate(24px)}.settings-page .cfg-advanced{margin:0;border-top:1px solid var(--hairline)}.cfg-advanced summary{min-height:44px;padding:12px 24px;color:var(--accent-ink);font-size:var(--fs-meta);font-weight:600}.cfg-advanced-help{padding:0 24px 12px;font-size:var(--fs-meta)}@media(max-width:1199px){.cfg-layout{grid-template-columns:minmax(0,1fr);gap:16px}.cfg-nav{position:static;display:flex;gap:8px;min-width:0;overflow-x:auto;margin:0;padding:2px 0 6px;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding-inline:8px}.cfg-nav a{scroll-snap-align:start}.cfg-nav::-webkit-scrollbar{display:none}.cfg-nav a{flex:none;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-chip);padding:8px 14px;font-size:var(--fs-meta)}.cfg-nav a[aria-current]{border-color:var(--accent-soft)}.cfg-card{scroll-margin-top:16px}}@media(max-width:640px){.cfg-row{grid-template-columns:1fr;padding:14px 16px}.cfg-card-head{padding:16px 16px 12px}.cfg-advanced summary{padding:12px 16px}.cfg-advanced-help{padding:0 16px 12px}.cfg-control,.cfg-seg-wrap{justify-items:start}.cfg-error{text-align:left}.cfg-text{width:100%!important}.cfg-row-toggle{grid-template-columns:minmax(0,1fr) auto}.cfg-row-toggle .cfg-control{justify-items:end}}@media(prefers-reduced-motion:reduce){.cfg-nav a,.cfg-reset.button,.cfg-seg-opt span,.cfg-switch:before,.cfg-switch:after{transition:none}}.cfg-card.cfg-flash{animation:cfg-flash .2s ease-out 1}@keyframes cfg-flash{0%{box-shadow:0 0 0 4px var(--accent, #1D6FD1)}to{box-shadow:0 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){.cfg-card.cfg-flash{animation:none}}.vs-page{display:grid;gap:28px;max-width:1040px;margin:0 auto}.vs-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;padding:24px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.vs-head h1{margin:0;font-size:var(--fs-display)}.vs-meta{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0;color:var(--secondary);font-size:var(--fs-body);font-weight:600}.vs-head-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.vs-head-actions select{min-height:48px}.vs-study-btn{min-height:52px;padding:12px 28px;font-size:17px;font-weight:700}.vs-section-title{margin:0 0 12px;font-size:var(--fs-h2)}.vs-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.vs-mode-card{display:grid;justify-items:start;gap:6px;min-height:120px;padding:16px;text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--hairline);border-radius:16px;box-shadow:var(--edge-strong);cursor:pointer;font:inherit;transition:transform .12s,border-color .12s}.vs-mode-card:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}.vs-mode-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.vs-mode-card:disabled{cursor:not-allowed;background:var(--page);box-shadow:none}.vs-mode-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent-ink)}.vs-mode-card:nth-child(2) .vs-mode-icon{background:var(--c-green-soft);color:var(--c-green-ink)}.vs-mode-card:nth-child(2) .vs-mode-icon{background:var(--c-violet-soft);color:var(--c-violet-ink)}.vs-mode-card:nth-child(3) .vs-mode-icon{background:var(--c-coral-soft);color:var(--c-coral-ink)}.vs-mode-name{font-weight:700;font-size:16px}.vs-mode-desc{color:var(--secondary);font-size:var(--fs-meta);line-height:1.35}.vs-list-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.vs-list-head .vs-section-title{margin:0}.vs-list-actions{display:flex;flex-wrap:wrap;gap:8px}.vs-list-actions .button{min-height:48px}.vs-search{position:relative;display:block;margin-bottom:12px}.vs-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--secondary);pointer-events:none}.vs-search input{width:100%;min-height:48px;padding-left:46px}.vs-rows{display:grid;gap:8px;margin:0;padding:0;list-style:none}.vs-row{display:grid;grid-template-columns:56px minmax(0,1.3fr) minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:10px 12px;background:var(--surface);border:1px solid var(--hairline);border-radius:16px}.vs-img{display:block;object-fit:contain;background:var(--page)}.vs-img-empty{display:grid;place-items:center;background:var(--course-soft);color:var(--course-ink);font-weight:800}.vs-thumb{width:56px;height:56px;border-radius:12px;font-size:24px}.vs-row-title{display:flex;align-items:center;gap:4px}.vs-row h3{margin:0;font-size:18px;overflow-wrap:anywhere}.vs-row small{display:block;color:var(--secondary);font-size:var(--fs-meta)}.vs-row-translation{margin:0;font-size:16px;overflow-wrap:anywhere}.vs-chip{padding:4px 10px;border-radius:var(--radius-chip);font-size:var(--fs-label);font-weight:700;white-space:nowrap}.vs-chip.is-new{background:var(--accent-soft);color:var(--accent-ink)}.vs-chip.is-learning{background:var(--c-amber-soft);color:var(--c-amber-ink)}.vs-chip.is-known{background:var(--c-green-soft);color:var(--c-green-ink)}.vs-row-actions{display:flex;gap:2px}.vs-icon-btn{display:inline-grid;place-items:center;flex:none;width:48px;height:48px;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:var(--secondary);cursor:pointer}.vs-icon-btn:hover{background:var(--page);color:var(--text)}.vs-icon-btn:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.vs-star.is-on{color:var(--c-amber-ink)}.vs-star.is-on svg path{fill:#f5b800;stroke:var(--c-amber-ink)}.vs-note{margin:0;color:var(--secondary);font-size:var(--fs-meta)}.vs-picture-form{display:grid;gap:12px}.vs-drop{position:relative;display:grid;justify-items:center;gap:8px;padding:20px;border:2px dashed var(--hairline);border-radius:16px;text-align:center;color:var(--secondary);cursor:pointer}.vs-drop.is-over,.vs-drop:focus-within{border-color:var(--accent);background:var(--accent-soft)}.vs-drop img{max-width:100%;max-height:180px;object-fit:contain;border-radius:12px}.vs-file{position:absolute;inset:0;opacity:0;cursor:pointer}.vs-error{min-height:1.2em;margin:0;color:var(--c-rose-ink);font-size:var(--fs-meta)}.vs-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.vs-dialog-actions .button{min-height:48px}.vs-study{--vs-amber: #D97706;position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;background:var(--ev-bg, var(--page));overflow:hidden auto}.vs-study .sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.vs-study-top{flex:none;display:flex;align-items:center;gap:8px;width:100%;max-width:760px;margin:0 auto;padding:16px 16px 0}.vs-study-top .vs-icon-btn{width:44px;height:44px}.vs-study .vs-icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.vs-progress{display:flex;flex:1;align-items:center;gap:8px;min-width:0}.vs-progress-track{flex:1;height:8px;border-radius:999px;background:var(--hairline);overflow:hidden}.vs-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--c-green);transition:width .25s ease}.vs-progress-count{flex:none;min-width:48px;text-align:right;font-size:var(--fs-body);font-weight:700;color:var(--secondary);font-variant-numeric:tabular-nums}.vs-modes{flex:none;display:flex;gap:4px;width:calc(100% - 32px);max-width:728px;margin:16px auto 0;padding:4px;background:var(--hairline);border-radius:14px;flex-wrap:wrap}.vs-mode-chip{display:inline-flex;flex:1 1 auto;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-radius:10px;background:transparent;color:var(--secondary);font:inherit;font-size:var(--fs-body);font-weight:600;cursor:pointer;transition:background .12s,color .12s}.vs-mode-chip:hover:not(.is-active){background:#ffffff8c;color:var(--text)}.vs-mode-chip .vs-mode-icon{width:20px;height:20px;border-radius:0;background:none;color:inherit}.vs-mode-chip .vs-mode-icon svg{width:20px;height:20px}.vs-mode-chip.is-active{background:var(--surface);color:var(--accent-ink);box-shadow:var(--edge)}.vs-mode-chip:focus-visible,.vs-toggle:focus-visible,.vs-answer:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.vs-stage{flex:1 1 0;min-height:0;display:flex;flex-direction:column;width:100%;max-width:760px;margin:0 auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.vs-flash{flex:1;min-height:0;display:flex;flex-direction:column;gap:16px}.vs-toggles{flex:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.vs-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--hairline);border-radius:var(--radius-chip);background:var(--surface);color:var(--secondary);font:inherit;font-size:var(--fs-body);font-weight:600;cursor:pointer}.vs-toggle:hover{color:var(--text);border-color:#d0d5dd}.vs-toggle[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.vs-toggle svg{width:20px;height:20px}.vs-deck{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding-bottom:16px;box-sizing:border-box}.vs-frame{position:relative;width:100%;max-width:640px;height:100%;max-height:540px}.vs-stack-layer{position:absolute;inset:0;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--edge-strong);pointer-events:none}.vs-stack-layer.is-1{transform:translateY(8px) scale(.97);z-index:1}.vs-stack-layer.is-2{transform:translateY(16px) scale(.94);z-index:0;background:var(--page)}.vs-card-wrap{position:absolute;inset:0;z-index:2;perspective:1400px;touch-action:pan-y;transition:transform .35s var(--ease-spring)}.vs-card-wrap.is-dragging{transition:none;cursor:grabbing}.vs-card-wrap.is-leaving{transition:transform .2s ease-in}.vs-card{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;font:inherit;color:var(--text);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.vs-card:focus-visible{outline:none}.vs-card:focus-visible .vs-face{outline:2px solid var(--accent);outline-offset:3px}.vs-card-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s var(--ease-spring)}.vs-card.is-flipped .vs-card-inner{transform:rotateY(180deg)}.vs-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 16px;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--edge-strong);backface-visibility:hidden;-webkit-backface-visibility:hidden}.vs-back{transform:rotateY(180deg)}.vs-edge{position:absolute;inset:0;z-index:3;border-radius:var(--radius-card);opacity:0;pointer-events:none}.vs-edge.is-known{background:linear-gradient(to left,color-mix(in srgb,var(--c-green) 30%,transparent),transparent 55%);box-shadow:inset -6px 0 0 var(--c-green)}.vs-edge.is-learning{background:linear-gradient(to right,color-mix(in srgb,var(--vs-amber) 30%,transparent),transparent 55%);box-shadow:inset 6px 0 0 var(--vs-amber)}.vs-swipe-tag{position:absolute;top:16px;z-index:4;padding:8px 16px;border:3px solid;border-radius:12px;background:var(--surface);font-size:18px;font-weight:800;pointer-events:none;opacity:0}.vs-swipe-tag.is-known{left:16px;color:var(--c-green-ink);border-color:var(--c-green);transform:rotate(-8deg)}.vs-swipe-tag.is-learning{right:72px;color:var(--c-amber-ink);border-color:var(--vs-amber);transform:rotate(8deg)}.vs-card-img{display:block;flex:1 1 0;width:100%;min-height:0;max-height:62%;object-fit:contain}.vs-card-credit{max-width:100%;color:var(--secondary);font-size:var(--fs-label);line-height:1.3;text-align:center;overflow-wrap:anywhere}.vs-card-word{flex:none;max-width:100%;font-size:clamp(34px,7vw,60px);font-weight:800;line-height:1.12;letter-spacing:-.01em;text-align:center;overflow-wrap:anywhere}.vs-card-example{flex:none;max-width:100%;margin-top:4px;color:var(--secondary);font-size:clamp(16px,2.4vw,20px);line-height:1.35;text-align:center;overflow-wrap:anywhere}.vs-card-audio{position:absolute;top:12px;right:12px;z-index:5;width:44px;height:44px;background:transparent;color:var(--secondary)}.vs-card-audio:hover{background:var(--page);color:var(--text)}.vs-tip{flex:none;margin:0;text-align:center;color:var(--secondary);font-size:var(--fs-meta);line-height:1.3}@media(hover:none),(pointer:coarse){.vs-tip.is-keys{display:none}}.vs-answer-row{flex:none;display:grid;grid-template-columns:1fr 1fr;gap:16px}.vs-answer{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:60px;padding:8px 16px;border:2px solid;border-radius:var(--radius-control);font:inherit;font-size:17px;font-weight:800;cursor:pointer;transition:transform .08s,box-shadow .08s,background .12s}.vs-answer.is-learning{background:var(--c-amber-soft);border-color:color-mix(in srgb,var(--vs-amber) 55%,transparent);color:var(--c-amber-ink);box-shadow:0 3px color-mix(in srgb,var(--vs-amber) 55%,transparent)}.vs-answer.is-known{background:var(--c-green-soft);border-color:color-mix(in srgb,var(--c-green) 45%,transparent);color:var(--c-green-ink);box-shadow:0 3px color-mix(in srgb,var(--c-green) 45%,transparent)}.vs-answer svg{width:22px;height:22px;flex:none}.vs-answer.is-learning svg{transform:rotate(-90deg)}.vs-answer.is-known svg{transform:rotate(90deg)}.vs-answer-count{font-variant-numeric:tabular-nums}.vs-answer:hover.is-learning{background:color-mix(in srgb,var(--vs-amber) 18%,var(--c-amber-soft))}.vs-answer:hover.is-known{background:color-mix(in srgb,var(--c-green) 14%,var(--c-green-soft))}.vs-answer:active{transform:translateY(3px);box-shadow:none}.vs-end{display:grid;justify-items:center;gap:16px;margin:auto 0;padding:8px 0;text-align:center}.vs-end h2{margin:0;font-size:26px}.vs-end-badge{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--c-amber-soft);color:var(--c-amber-ink)}.vs-end-badge svg{width:36px;height:36px}.vs-end-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.vs-end-stat{display:grid;gap:8px;min-width:140px;padding:16px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface)}.vs-end-stat strong{font-size:28px;font-variant-numeric:tabular-nums}.vs-end-stat span{color:var(--secondary);font-weight:600;font-size:var(--fs-meta)}.vs-end-stat.is-known{border-color:color-mix(in srgb,var(--c-green) 35%,transparent)}.vs-end-stat.is-known strong{color:var(--c-green-ink)}.vs-end-stat.is-learning{border-color:color-mix(in srgb,var(--vs-amber) 40%,transparent)}.vs-end-stat.is-learning strong{color:var(--c-amber-ink)}.vs-end-actions{display:grid;gap:8px;width:min(100%,360px)}.vs-end-actions .button{min-height:52px;justify-content:center;font-size:17px;font-weight:700}.vs-quiz.lp{max-width:640px;width:100%;margin:auto;padding-bottom:140px}.vs-task{display:grid;gap:16px;padding:24px;text-align:center}.vs-task .eyebrow{margin:0}.vs-task-prompt{display:flex;align-items:center;justify-content:center;gap:8px}.vs-task-prompt h2{margin:0;font-size:clamp(32px,6vw,48px);font-weight:800;line-height:1.12;overflow-wrap:anywhere}.vs-task-img{justify-self:center;width:100%;max-height:min(34vh,280px);object-fit:contain;border-radius:16px}.vs-task .options{text-align:left}.vs-task .options{grid-template-columns:minmax(0,1fr);gap:8px;width:100%;max-width:520px;justify-self:center}.vs-task .options .tile{min-height:56px;padding:10px 14px;border-color:var(--hairline);border-radius:14px;box-shadow:0 1px 2px #1118270d;transition:border-color .15s,background-color .15s}.vs-task .options .tile .tile-text{text-align:left;overflow-wrap:anywhere}.vs-task .options .tile:not(.is-selected):not(.is-correct):not(.is-wrong):hover:not(:disabled){background:#f7fafe;border-color:#b9d5f5}.vs-task .options .tile:active:not(:disabled){transform:none;box-shadow:0 1px 2px #1118270d}.vs-task .options .tile.is-selected,.vs-task .options .tile.is-correct,.vs-task .options .tile.is-wrong{box-shadow:0 1px 2px #1118270d}.vs-task .options .tile kbd{border:0;background:var(--page)}.vs-type{display:grid;gap:8px;font-weight:600;text-align:left}.vs-quiz .english-content input{width:100%;min-height:52px;margin:0;font-size:20px}.vs-quiz .lp-bar{left:0;bottom:0;z-index:91}@media(max-width:900px){.vs-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vs-mode-card:last-child{grid-column:1 / -1}.vs-quiz .lp-bar{bottom:0}}@media(max-width:640px){.vs-head{padding:16px}.vs-head-actions,.vs-study-btn{width:100%}.vs-head-actions select{flex:1}.vs-row{grid-template-columns:56px minmax(0,1fr) auto;grid-template-areas:"img word chip" "img tr tr" "act act act";gap:4px 12px}.vs-row .vs-thumb{grid-area:img;align-self:start}.vs-row-word{grid-area:word}.vs-row-translation{grid-area:tr}.vs-chip{grid-area:chip;align-self:start;margin-top:12px}.vs-row-actions{grid-area:act;justify-content:flex-end;border-top:1px solid var(--hairline);padding-top:4px}.vs-stage{padding:8px 16px calc(12px + env(safe-area-inset-bottom))}.vs-flash,.vs-answer-row{gap:8px}.vs-answer{font-size:16px}.vs-end-stat{min-width:120px}.vs-task{padding:20px 16px}.vs-task .options .tile{min-height:56px;padding:8px 12px;font-size:17px}.vs-task .options kbd{display:none}.vs-swipe-tag.is-learning{right:64px}}@media(max-width:420px){.vs-answer>svg{display:none}}@media(prefers-reduced-motion:reduce){.vs-card-inner{transform-style:flat;transition:none}.vs-card.is-flipped .vs-card-inner{transform:none}.vs-face{backface-visibility:visible;transition:opacity .2s linear}.vs-back{transform:none;opacity:0}.vs-card.is-flipped .vs-front{opacity:0}.vs-card.is-flipped .vs-back{opacity:1}.vs-card-wrap,.vs-card-wrap.is-leaving{transition:none}.vs-mini-stack span,.vs-mode-card.is-hero:hover .vs-mini-top{transition:none;transform:none}.vs-mode-card,.vs-answer,.vs-progress-track span,.vs-mode-chip{transition:none}.vs-mode-card:hover:not(:disabled){transform:none}}.vs-quiz .lp-bar.is-good,.vs-quiz .lp-bar.is-bad{animation:vs-rise .18s ease-out}@keyframes vs-rise{0%{transform:translateY(12px)}to{transform:none}}@media(prefers-reduced-motion:reduce){.vs-quiz .lp-bar.is-good,.vs-quiz .lp-bar.is-bad{animation:none}}.vs-mode-card.is-hero{grid-column:1 / -1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;min-height:168px;padding:24px 28px;background:var(--accent-soft);border-color:#b9d5f5}.vs-hero-text{display:grid;justify-items:start;gap:8px}.vs-mode-card.is-hero .vs-mode-name{font-size:26px;font-weight:800;color:var(--text)}.vs-mode-card.is-hero .vs-mode-desc{color:var(--accent-ink);font-size:16px;font-weight:700}.vs-hero-go{display:inline-flex;align-items:center;min-height:48px;margin-top:4px;padding:0 24px;border-radius:var(--radius-control);background:var(--accent);color:#fff;font-weight:700;box-shadow:0 3px 0 var(--accent-edge)}.vs-mode-card.is-hero:hover:not(:disabled) .vs-hero-go{background:var(--accent-ink)}.vs-mini-stack{position:relative;width:170px;height:120px;margin-right:24px}.vs-mini-stack span{position:absolute;inset:0;border:1px solid var(--hairline);border-radius:14px;background:#fff;box-shadow:0 3px #d0d5dd;transition:transform .2s}.vs-mini-stack span:nth-child(1){transform:translate(10px,10px) rotate(6deg);background:#f7f9fc}.vs-mini-stack span:nth-child(2){transform:translate(5px,5px) rotate(3deg);background:#fbfcfe}.vs-mini-top{display:grid;place-items:center;font-size:22px;font-weight:800;color:var(--text);overflow:hidden}.vs-mode-card.is-hero:hover:not(:disabled) .vs-mini-top{transform:translate(14px) rotate(6deg)}.vs-mini-stack i{position:absolute;top:50%;display:grid;place-items:center;width:32px;height:32px;margin-top:-16px;border-radius:50%;font-style:normal;font-weight:800;z-index:1}.vs-mini-left{left:-18px;background:var(--c-amber-soft);color:var(--c-amber-ink)}.vs-mini-right{right:-18px;background:var(--c-green-soft);color:var(--c-green-ink)}.vs-field{min-height:44px;padding:10px 12px;border:1px solid var(--field-border, #868E9C);border-radius:10px;background:var(--field-bg, #F9FAFB);color:var(--text);font:inherit;transition:border-color .12s,box-shadow .12s,background .12s}.vs-field:hover{border-color:var(--text)}.vs-field:focus-visible{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-soft)}.vs-field::placeholder{color:#6b7280;opacity:1}.vs-field[aria-invalid=true]{border-color:var(--c-rose-ink)}.vs-editor{display:grid;gap:16px;max-width:960px;margin:0 auto}.vs-ed-bar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:16px 20px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.vs-ed-bar-text{flex:1;min-width:0}.vs-ed-bar-actions{display:flex;flex-wrap:wrap;gap:8px}.vs-ed-bar-actions .button{min-height:48px;padding:0 22px}.vs-editor .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.vs-ed-bar h1{margin:0;font-size:var(--fs-display)}.vs-ed-status{margin:0;padding:6px 12px;border-radius:var(--radius-chip);font-weight:700;font-size:var(--fs-meta);background:var(--c-green-soft);color:var(--c-green-ink)}.vs-ed-status.is-saving{background:var(--page);color:var(--secondary)}.vs-ed-head{display:grid;grid-template-columns:minmax(0,1fr) 240px;grid-template-areas:"title student" "note note";gap:12px 16px}.vs-ed-title{grid-area:title}.vs-ed-student{grid-area:student}.vs-ed-note{grid-area:note}.vs-ed-student,.vs-ed-note{display:grid;gap:6px;font-weight:700}.vs-ed-note .vs-field{resize:vertical}.vs-ed-tool-btns{display:flex;flex-wrap:wrap;gap:8px}.vs-ed-tool-btns .button.danger{color:#b42318}.vs-ed-tool-btns .button.danger:hover:not(:disabled){background:var(--c-rose-soft);color:var(--c-rose-ink)}.vs-ed-title{display:grid;gap:6px;font-weight:700}.vs-ed-title .vs-field{font-size:20px;font-weight:700}.vs-ed-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.vs-ed-tools .button{display:inline-flex;align-items:center;gap:8px;min-height:44px}.vs-ed-rows{display:grid;gap:10px;margin:0;padding:0;list-style:none}.vs-ed-row{display:grid;grid-template-columns:44px minmax(0,1fr) 84px auto;align-items:start;gap:12px;padding:14px 12px 14px 8px;background:var(--surface);border:1px solid var(--hairline);border-radius:16px}.vs-ed-row.is-dragging{opacity:.5}.vs-ed-side{display:grid;justify-items:center;gap:2px;padding-top:8px}.vs-ed-handle{display:grid;place-items:center;width:44px;height:32px;color:var(--secondary);font-size:16px;letter-spacing:-4px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.vs-ed-num{font-weight:800;color:var(--secondary);font-variant-numeric:tabular-nums}.vs-ed-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 16px}.vs-ed-field{display:grid;gap:4px;margin:0}.vs-ed-field>span{color:var(--secondary);font-size:var(--fs-label, 13px);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.vs-ed-field .vs-field{width:100%;font-size:17px}.vs-ed-example{grid-column:1 / -1}.vs-ed-link{grid-column:1 / -1;justify-self:start;display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:44px;padding:0 10px 0 4px;border:0;border-radius:10px;background:none;color:var(--accent-ink);font:inherit;font-weight:700;cursor:pointer}.vs-ed-link svg{width:20px;height:20px;flex:none}.vs-ed-link:hover{background:var(--accent-soft)}.vs-ed-link:focus-visible,.vs-ed-pic:focus-visible,.vs-ed-add:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.vs-ed-example-peek{overflow:hidden;color:var(--secondary);font-weight:500;white-space:nowrap;text-overflow:ellipsis}.vs-ed-half{grid-column:1 / -1;margin:0;color:var(--c-amber-ink);font-size:var(--fs-meta);font-weight:600}.vs-ed-pic{display:grid;place-items:center;align-content:center;gap:2px;width:84px;height:84px;margin-top:0;padding:0;overflow:hidden;border:2px dashed var(--field-border, #868E9C);border-radius:12px;background:var(--field-bg, #F9FAFB);color:var(--secondary);font:inherit;font-size:var(--fs-label, 13px);font-weight:700;cursor:pointer}.vs-ed-pic:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.vs-ed-pic.has-image{border-style:solid;border-color:var(--hairline);background:var(--page)}.vs-ed-pic img{width:100%;height:100%;object-fit:cover}.vs-ed-actions{display:flex}.vs-ed-pic[aria-expanded=true]{border-color:var(--accent)}.vs-ed-panel{grid-column:1 / -1;display:grid;gap:12px;margin-top:4px;padding:16px;border:1px solid var(--hairline);border-radius:14px;background:var(--page)}.vs-panel-search{display:flex;gap:8px}.vs-panel-q{flex:1;min-width:0;display:block}.vs-panel-q .vs-field{width:100%}.vs-panel-go{display:inline-flex;align-items:center;gap:8px;min-height:44px}.vs-panel-results{min-height:0}.vs-panel-results p{margin:0}.vs-carousel{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:4px}.vs-car-prev svg{transform:rotate(-90deg)}.vs-car-next svg{transform:rotate(90deg)}.vs-car-track{display:flex;gap:8px;margin:0;padding:4px;list-style:none;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin}.vs-car-track li{flex:none;scroll-snap-align:start}.vs-car-item{display:block;width:104px;height:104px;padding:0;overflow:hidden;border:2px solid transparent;border-radius:12px;background:var(--surface);cursor:pointer}.vs-car-item img{display:block;width:100%;height:100%;object-fit:cover}.vs-car-item:hover{border-color:var(--accent)}.vs-car-item.is-on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.vs-car-item:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.vs-panel-own{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:end}.vs-panel-drop{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:64px;padding:8px 12px;border:2px dashed var(--field-border, #868E9C);border-radius:12px;background:var(--surface);color:var(--secondary);font-weight:700;text-align:center;cursor:pointer}.vs-panel-drop svg{width:24px;height:24px;flex:none}.vs-panel-drop.is-over,.vs-panel-drop:focus-within{border-color:var(--accent);background:var(--accent-soft)}.vs-panel-url{display:grid;gap:6px;font-weight:700}.vs-panel-chosen{display:flex;align-items:center;gap:12px;margin:0}.vs-panel-chosen img{width:96px;height:72px;object-fit:cover;border-radius:10px;background:var(--surface)}.vs-panel-chosen figcaption{color:var(--secondary);font-size:var(--fs-meta);overflow-wrap:anywhere}.vs-ed-panel .vs-note{margin:0}.vs-ed-actions .vs-icon-btn{width:44px;height:44px}.vs-ed-actions .vs-icon-btn:disabled{opacity:.35;cursor:default;background:none}.vs-ed-down svg{transform:rotate(180deg)}.vs-ed-add{display:flex;align-items:center;justify-content:center;gap:8px;min-height:64px;border:2px dashed #B9D5F5;border-radius:16px;background:var(--surface);color:var(--accent-ink);font:inherit;font-size:17px;font-weight:800;cursor:pointer}.vs-ed-add:hover{background:var(--accent-soft);border-color:var(--accent)}.vs-import{display:grid;gap:12px}.vs-import label{display:grid;gap:6px;font-weight:700}.vs-import textarea{width:100%;resize:vertical}.vs-import-title{margin:0;font-size:16px}.vs-import-preview{display:grid;gap:4px;max-height:200px;margin:0;padding:0 0 0 24px;overflow:auto}.vs-import-preview li span{margin-right:8px}.vs-picture-form label{display:grid;gap:6px}@media(max-width:640px){.vs-mode-card.is-hero{grid-template-columns:1fr;padding:20px}.vs-mini-stack{display:none}.vs-ed-bar{padding:12px 16px}.vs-ed-head{grid-template-columns:1fr;grid-template-areas:"title" "student" "note"}.vs-ed-bar-actions{width:100%}.vs-ed-bar-actions .button{flex:1}.vs-ed-row{grid-template-columns:36px minmax(0,1fr);grid-template-areas:"side fields" "side pic" "act act" "panel panel";gap:8px;padding:12px 10px 4px 4px}.vs-ed-panel{grid-area:panel;padding:12px}.vs-panel-own{grid-template-columns:1fr}.vs-panel-search{flex-wrap:wrap}.vs-panel-q{flex-basis:100%}.vs-car-item{width:88px;height:88px}.vs-ed-side{grid-area:side}.vs-ed-handle{width:36px}.vs-ed-fields{grid-area:fields;grid-template-columns:1fr}.vs-ed-pic{grid-area:pic;width:84px;height:84px;justify-self:start}.vs-ed-actions{grid-area:act;justify-content:flex-end;border-top:1px solid var(--hairline)}}@media(prefers-reduced-motion:reduce){.vs-field{transition:none}.vs-car-track{scroll-behavior:auto}}.vs-ed-title,.vs-ed-student,.vs-ed-note,.vs-ed-field,.vs-panel-q,.vs-panel-drop,.vs-panel-url{margin:0}.vs-ed-head{align-items:start}.vc-page{gap:16px;max-width:1200px}.vc-head{flex-direction:column;align-items:stretch;gap:16px;padding:16px 24px}.vc-scope{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.vc-switch,.vc-seg{display:inline-flex;max-width:100%;padding:2px;gap:2px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--page)}.vc-switch button,.vc-seg button{min-height:44px;padding:0 16px;border:0;border-radius:10px;background:transparent;color:var(--secondary);font:inherit;font-weight:500;white-space:nowrap;cursor:pointer}.vc-switch button:hover:not(:disabled),.vc-seg button:hover{background:var(--surface);color:var(--text)}.vc-switch button[aria-pressed=true],.vc-seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.vc-switch button:focus-visible,.vc-seg button:focus-visible,.vc-node:focus-visible,.vc-group-head:focus-visible,.vc-nav-toggle:focus-visible,.vc-new:focus-visible,.vc-set:focus-visible,.vc-mode:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.vc-picker{flex:0 1 280px;min-width:200px;transition:opacity .2s}.vc-picker.is-idle{opacity:.72}.vc-picker .ss-btn{min-height:44px}.vc-lead{margin:4px 0 0;color:var(--secondary);font-size:var(--fs-body);max-width:70ch}.vc-notice{min-height:0;margin:0;color:var(--accent-ink);font-size:var(--fs-meta);font-weight:600}.vc-notice:empty{display:none}.vc-caret{flex:none;width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .2s ease}[aria-expanded=true]>.vc-caret{transform:rotate(45deg) translate(-1px,-1px)}.vc-fold{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s ease-out,visibility 0s}.vc-fold[data-open=false]{grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .2s ease-in,visibility 0s .2s}.vc-fold-inner{min-height:0;overflow:hidden}.vc-n{flex:none;min-width:24px;padding:0 8px;border-radius:var(--radius-chip);background:var(--page);color:var(--secondary);font-size:var(--fs-label);font-weight:600;line-height:20px;text-align:center}.vc-node-name{flex:1;min-width:0;overflow-wrap:anywhere;text-align:left}.vc-bank{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start}.vc-side{position:sticky;top:16px;padding:8px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.vc-nav-toggle{display:none}.vc-tree,.vc-tree ul{margin:0;padding:0;list-style:none}.vc-node{display:flex;align-items:center;gap:8px;width:100%;min-height:32px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:14px;cursor:pointer}.vc-node:hover{background:var(--accent-soft)}.vc-node[aria-current=true]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.vc-node[aria-current=true] .vc-n{background:var(--surface);color:var(--accent-ink)}.vc-level-head{font-weight:600}.vc-topic{padding-left:32px}.vc-new{display:flex;align-items:center;gap:8px;width:100%;min-height:32px;margin-top:8px;padding:0 8px;border:0;border-top:1px solid var(--hairline);border-radius:0 0 8px 8px;background:transparent;color:var(--accent-ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.vc-new:hover{background:var(--accent-soft)}.vc-new svg{width:18px;height:18px}.vc-main{display:grid;gap:8px;min-width:0}.vc-list-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.vc-list-head .vs-section-title{margin:0}.vc-count,.vc-status-line{margin:0;color:var(--secondary);font-size:var(--fs-meta);font-weight:600}.vc-status-line{flex:1 1 auto}.vc-main .vs-search,.vc-page .vs-search{margin-bottom:0}.vc-rows{gap:8px}.vc-page .vs-row{padding:8px 12px;gap:12px}.vc-page .vs-thumb{width:40px;height:40px;border-radius:10px;font-size:18px}.vc-page .vs-row h3{font-size:16px}.vc-page .vs-row-translation small{display:block}.vc-bank-row{grid-template-columns:40px minmax(0,1.2fr) minmax(0,1fr) auto}.vc-move{display:flex;align-items:center;gap:8px;color:var(--secondary);font-size:var(--fs-meta)}.vc-move select{min-height:44px;max-width:200px}.vc-new-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 16px;padding:12px 16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.vc-new-form label{display:grid;gap:4px;font-size:var(--fs-meta);color:var(--secondary)}.vc-new-form input,.vc-new-form select,.vc-new-form .button{min-height:44px}.vc-empty{display:grid;justify-items:start;gap:8px;margin:0;padding:16px 24px;border:1px dashed var(--hairline);border-radius:var(--radius-card);color:var(--secondary)}.vc-empty p{margin:0;max-width:60ch}.vc-empty-card{padding:24px;background:var(--surface)}.vc-empty-card h2{margin:0;font-size:var(--fs-h2);color:var(--text)}.vc-empty-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.vc-actions{display:flex;flex-wrap:wrap;gap:8px}.vc-actions .button{min-height:44px}.vc-actions .button svg{width:18px;height:18px;margin-right:6px}.vc-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.vc-mode{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 12px;background:var(--surface);color:var(--text);border:1px solid var(--hairline);border-radius:14px;font:inherit;font-weight:600;cursor:pointer;text-align:left}.vc-mode:hover:not(:disabled){border-color:var(--accent)}.vc-mode:disabled{cursor:not-allowed;background:var(--page);color:var(--secondary)}.vc-mode .vs-mode-icon{width:36px;height:36px;flex:none}.vc-modes .vc-mode:nth-child(1) .vs-mode-icon{background:var(--c-green-soft);color:var(--c-green-ink)}.vc-modes .vc-mode:nth-child(2) .vs-mode-icon{background:var(--c-violet-soft);color:var(--c-violet-ink)}.vc-modes .vc-mode:nth-child(3) .vs-mode-icon{background:var(--c-coral-soft);color:var(--c-coral-ink)}.vc-group{margin-top:8px}.vc-group h3{margin:0}.vc-group-head{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 8px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:16px;font-weight:700;cursor:pointer}.vc-group-head:hover{background:var(--accent-soft)}.vc-group .vc-rows{padding:4px 0 8px}.vc-group-empty{margin:0;padding:4px 8px 12px 28px;color:var(--secondary);font-size:var(--fs-meta)}.vc-add{display:grid;gap:12px}.vc-add-help{margin:0;color:var(--secondary)}.vc-add-topic{display:grid;gap:4px;font-weight:600}.vc-add-topic select{min-height:44px;font-weight:400}.vc-add-list,.vc-set-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.vc-check{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 8px;border-radius:8px;cursor:pointer}.vc-check:hover{background:var(--accent-soft)}.vc-check input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--accent)}.vc-check-all{font-weight:600;border-bottom:1px solid var(--hairline);border-radius:0}.vc-check-word{font-weight:600;min-width:96px}.vc-check-tr{flex:1;min-width:0;color:var(--secondary);overflow-wrap:anywhere}.vc-check-has{flex:none;color:var(--secondary);font-size:var(--fs-label)}.vc-check.is-has{cursor:default;color:var(--secondary)}.vc-check.is-has:hover{background:transparent}.vc-set{display:grid;width:100%;gap:2px;min-height:52px;padding:8px 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.vc-set:hover{background:var(--accent-soft)}.vc-set-name{font-weight:600}.vc-set-meta{color:var(--secondary);font-size:var(--fs-meta)}@media(max-width:900px){.vc-bank{grid-template-columns:minmax(0,1fr);gap:16px}.vc-side{position:static;padding:0}.vc-nav-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:48px;padding:0 16px;border:0;border-radius:var(--radius-card);background:transparent;color:var(--text);font:inherit;font-weight:600;cursor:pointer}.vc-nav-fold{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .2s ease-in,visibility 0s .2s}.vc-nav-fold.is-open{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .2s ease-out,visibility 0s}.vc-nav-inner{min-height:0;overflow:hidden}.vc-nav{padding:0 8px 8px;max-height:60vh;overflow-y:auto}.vc-node,.vc-new{min-height:44px}.vc-modes{grid-template-columns:repeat(2,minmax(0,1fr))}.vc-page .vs-row,.vc-bank-row{grid-template-columns:40px minmax(0,1fr) auto}.vc-page .vs-row-translation{grid-column:2 / 3}.vc-bank-row .vc-move{grid-column:1 / -1}.vc-page .vs-chip{justify-self:start}.vc-page .vs-row-actions{grid-column:1 / -1}}@media(max-width:600px){.vc-head{padding:16px}.vc-switch{width:100%}.vc-switch button{flex:1;padding:0 8px}.vc-picker{flex-basis:100%}.vc-seg{width:100%}.vc-seg button{flex:1;padding:0 8px}}@media(prefers-reduced-motion:reduce){.vc-fold,.vc-fold[data-open=false],.vc-nav-fold,.vc-nav-fold.is-open,.vc-caret,.vc-picker{transition:none}}.vc-more{justify-self:start;min-height:44px}.vc-page label{margin:0}.vc-nav{display:block}.vc-page .vs-icon-btn{width:44px;height:44px}@media(min-width:901px){.vc-page .vs-icon-btn.vs-small{width:32px;height:32px}.vc-page .vs-icon-btn.vs-small svg{width:20px;height:20px}}.vc-move,.vc-check{display:flex}.vc-add-topic,.vc-new-form label{display:grid}.vc-page .vs-search{display:block}.vc-page .vs-search input{max-width:none}.vs-rows{container-type:inline-size}@container (max-width: 560px){.vs-row{grid-template-columns:56px minmax(0,1fr) auto;grid-template-areas:"img word chip" "img tr tr" "act act act";gap:4px 12px}.vs-row .vs-thumb{grid-area:img;align-self:start}.vs-row-word{grid-area:word}.vs-row-translation{grid-area:tr}.vs-chip{grid-area:chip;align-self:start;margin-top:12px}.vs-row-actions{grid-area:act;justify-content:flex-end;border-top:1px solid var(--hairline);padding-top:4px}.vc-bank-row{grid-template-columns:40px minmax(0,1fr);grid-template-areas:"img word" "img tr" "mv mv"}.vc-bank-row .vs-thumb{width:40px;height:40px}.vc-bank-row .vc-move{grid-area:mv}}.vs-done-btn{flex:none;min-height:44px;padding:0 16px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.vs-done-btn:hover{background:var(--c-amber-soft)}.vs-round-chip{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--secondary);font-size:var(--fs-meta);font-weight:600}.vs-round-line{margin:0;font-size:var(--fs-body);font-weight:600;color:var(--secondary)}.lv{display:flex;flex-direction:column;gap:16px;min-width:0}.lv-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.lv-avatar{flex-shrink:0}.lv-who{min-width:0;flex:1 1 160px}.lv-who h1{margin:0;font-size:var(--fs-h2);line-height:1.2}.lv-who p{margin:2px 0 0;color:var(--secondary);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-timer{display:inline-flex;align-items:center;gap:6px;padding:0 12px;min-height:36px;border-radius:var(--radius-chip);background:var(--page);color:var(--text);font-size:var(--fs-meta);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.lv-timer svg{width:18px;height:18px}.lv-top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.lv-quick{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-weight:600;color:var(--text);text-decoration:none}.lv-quick svg{width:20px;height:20px}.lv-quick[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.lv-follow{margin:0;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 8px;font-size:var(--fs-meta);font-weight:600}.lv-follow input{width:20px;height:20px}.lv-end{min-height:44px;padding:0 18px;font-weight:600}.lv-body{display:grid;grid-template-columns:248px minmax(0,1fr);gap:16px;align-items:start}.lv.has-panel .lv-body{grid-template-columns:220px minmax(0,1fr) minmax(340px,42%)}.lv-rail{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);position:sticky;top:16px;max-height:calc(100dvh - 32px);overflow:auto}.lv-rail-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px}.lv-rail-head h2{margin:0;font-size:var(--fs-meta);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--secondary)}.lv-small{min-height:44px;padding:0 10px;font-size:var(--fs-meta);font-weight:600}.lv-steps{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.lv-step{position:relative;display:flex;align-items:center;gap:4px;border-radius:var(--radius-control)}.lv-step.is-dragging{opacity:.5}.lv-step-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 8px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--text);font:inherit;font-size:var(--fs-meta);font-weight:500;text-align:left;cursor:pointer}.lv-step-main:hover{background:var(--page)}.lv-step-main[aria-current=step]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.lv-step-text{min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.lv-step-num{flex-shrink:0;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--page);border:2px solid var(--hairline);color:var(--text);font-size:var(--fs-label);font-weight:700}.lv-step-num svg{width:16px;height:16px}.lv-step-num.is-correct{background:var(--c-green-soft);border-color:var(--c-green);color:var(--c-green-ink)}.lv-step-num.is-wrong{background:var(--c-rose-soft);border-color:var(--c-rose-ink);color:var(--c-rose-ink)}.lv-step-num.is-answered{background:var(--c-amber-soft);border-color:var(--c-amber-ink);color:var(--c-amber-ink)}.lv-step-tools{display:flex;gap:2px}.lv-tool{display:grid;place-items:center;width:44px;height:44px;padding:0;box-shadow:none}.lv-tool svg{width:18px;height:18px}.lv-down svg{transform:rotate(180deg)}.lv-add{position:relative}.lv-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;font-weight:600;border-style:dashed;box-shadow:none;color:var(--accent-ink)}.lv-add-btn svg{width:20px;height:20px}.lv-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;display:grid;padding:6px;background:var(--surface);border:1px solid var(--hairline);border-radius:16px;box-shadow:0 8px 24px #1118271f}.lv-menu button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-weight:500;text-align:left;cursor:pointer}.lv-menu button:hover,.lv-menu button:focus-visible{background:var(--accent-soft)}.lv-menu svg{width:20px;height:20px;color:var(--accent-ink)}.lv-main{display:flex;flex-direction:column;gap:12px;min-width:0}.lv-step-head{display:flex;align-items:center;gap:12px}.lv-step-title{flex:1;min-width:0}.lv-step-title small{color:var(--secondary);font-size:var(--fs-meta);font-weight:600}.lv-step-title h2{margin:2px 0 0;overflow-wrap:anywhere}.lv-nav{display:grid;place-items:center;width:44px;height:44px;padding:0;flex-shrink:0}.lv-nav svg{width:20px;height:20px}.lv-arrow-left,.lv-arrow-right{display:grid}.lv-arrow-left svg{transform:rotate(-90deg)}.lv-arrow-right svg{transform:rotate(90deg)}.lv-stage{position:relative;min-height:420px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);overflow:hidden}.lv-stage-canvas,.lv-stage-link,.lv-stage-textbook{height:max(420px,calc(100dvh - 260px));display:flex;flex-direction:column}.lv-board{flex:1;display:flex;flex-direction:column;min-height:0;height:100%}.lv-board>*{flex:1;min-height:0}.lv-frame{display:block;width:100%;height:100%;min-height:0;flex:1;border:0}.lv-loading{margin:0;padding:24px;color:var(--secondary)}.lv-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:100%;padding:32px 16px;text-align:center;flex:1}.lv-empty h2{margin:4px 0 0}.lv-empty p{margin:0;max-width:460px;color:var(--secondary)}.lv-empty .button{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-weight:600}.lv-empty .button svg{width:20px;height:20px}.lv-empty-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--accent-soft);color:var(--accent-ink)}.lv-empty-icon svg{width:28px;height:28px}.lv-exercise{display:flex;flex-direction:column;gap:16px;padding:24px}.lv-exercise>.button{align-self:flex-start;min-height:44px}.lv-to-board{display:inline-flex;align-items:center;gap:6px;font-weight:600}.lv-to-board svg{width:18px;height:18px}.lv-answer-state{display:inline-flex;align-items:center;gap:8px;margin:0;align-self:flex-start;padding:6px 12px;border-radius:var(--radius-chip);background:var(--page);font-size:var(--fs-meta);font-weight:600;color:var(--secondary)}.lv-answer-state.is-correct{background:var(--c-green-soft);color:var(--c-green-ink)}.lv-answer-state.is-wrong{background:var(--c-rose-soft);color:var(--c-rose-ink)}.lv-answer-state.is-answered{background:var(--c-amber-soft);color:var(--c-amber-ink)}.lv-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.lv-keys{margin:0;color:var(--secondary);font-size:var(--fs-label);text-align:center}.lv-notes{display:flex;flex-direction:column;gap:8px;padding:20px}.lv-notes-label{font-weight:600;font-size:var(--fs-body)}.lv-hint{margin:0;color:var(--secondary);font-size:var(--fs-meta)}.lv-notes-text{width:100%;min-height:240px;resize:vertical;padding:14px 16px;border:1px solid var(--hairline);border-radius:var(--radius-control);font:inherit;font-size:20px;line-height:1.5;color:var(--text);background:var(--surface)}.lv-words{display:flex;flex-direction:column;gap:8px;margin-top:8px}.lv-words-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.lv-words-head h3{margin:0;font-size:var(--fs-body)}.lv-words-head .button{min-height:44px;font-weight:600}.lv-word-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.lv-word-list li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 6px 6px 14px;border:1px solid var(--hairline);border-radius:var(--radius-control)}.lv-word{font-weight:700}.lv-translation{color:var(--secondary);flex:1;min-width:80px}.lv-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border-radius:var(--radius-chip);font-size:var(--fs-meta);font-weight:600;color:var(--accent-ink);box-shadow:none}.lv-chip svg{width:18px;height:18px}.lv-chip.is-added{background:var(--c-green-soft);color:var(--c-green-ink);border:0}.lv-status{margin:0;font-size:var(--fs-meta);color:var(--c-green-ink);font-weight:600}.lv-status:empty{display:none}.lv-viewer-wrap{display:flex;flex-direction:column;height:100%;min-height:0}.lv-viewer-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--hairline)}.lv-viewer-tools .button{min-height:44px;min-width:44px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px}.lv-viewer-tools svg{width:18px;height:18px}.lv-zoom{min-width:48px;text-align:center;font-size:var(--fs-meta);font-weight:600;font-variant-numeric:tabular-nums}.lv-viewer{flex:1;min-height:0;overflow:auto;background:var(--page);padding:12px}.lv-viewer img{display:block;max-width:none;margin:0 auto;background:#fff}.lv-upload{cursor:pointer}.lv-upload:focus-within{outline:2px solid var(--accent);outline-offset:2px}.lv-inline-form{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;justify-content:center;width:min(520px,100%);text-align:left}.lv-inline-form label{display:grid;gap:6px;flex:1 1 220px;font-size:var(--fs-meta);font-weight:600}.lv-inline-form input{min-height:44px}.lv-link-form{flex-direction:column;align-items:stretch}.lv-error{margin:0;color:var(--c-rose-ink);font-size:var(--fs-meta);font-weight:600}.lv-link-url{overflow-wrap:anywhere}.lv-panel{display:flex;flex-direction:column;min-width:0;height:max(420px,calc(100dvh - 160px));position:sticky;top:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);overflow:hidden}.lv-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 8px 8px 16px;border-bottom:1px solid var(--hairline)}.lv-panel-head h2{margin:0;font-size:var(--fs-body)}.lv-panel-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}.lv-closing{display:flex;flex-direction:column;gap:16px;max-width:720px;margin:0 auto;width:100%}.lv-closing h1{margin:0}.lv-closing-sub{margin:-8px 0 0;color:var(--secondary)}.lv-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.lv-stat{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.lv-stat strong{font-size:24px}.lv-stat span{color:var(--secondary);font-size:var(--fs-meta)}.lv-field{display:flex;flex-direction:column;gap:8px;margin:0;padding:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);min-width:0}.lv-field legend{float:left;width:100%;padding:0;margin-bottom:4px;font-weight:600;font-size:var(--fs-h2)}.lv-field h2{margin:0}.lv-field .check-label{min-height:44px;display:flex;align-items:center;gap:10px}.lv-field .check-label input{width:20px;height:20px;flex-shrink:0}.lv-field>.button{align-self:flex-start;min-height:44px;display:inline-flex;align-items:center}.lv-field.lv-hw{gap:12px}.lv-hw-options{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lv-hw-options>li{display:flex;min-width:0}.lv-hw-option{flex:1;display:flex;align-items:flex-start;gap:12px;min-height:72px;padding:14px 16px;text-align:left;text-decoration:none;color:var(--text);font:inherit;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge);cursor:pointer;transition:transform .12s var(--ease-spring),box-shadow .12s,background .12s,border-color .12s}.lv-hw-option:hover:not(:disabled){transform:translateY(-1px);border-color:var(--accent);background:var(--accent-soft)}.lv-hw-option:disabled{cursor:default;opacity:.6;box-shadow:none}.lv-hw-icon{display:inline-flex;flex:0 0 40px;width:40px;height:40px;align-items:center;justify-content:center;border-radius:12px;background:var(--accent-soft);color:var(--accent-ink)}.lv-hw-icon svg{width:22px;height:22px}.lv-hw-text{display:flex;flex-direction:column;gap:2px;min-width:0}.lv-hw-text strong{font-size:var(--fs-body);line-height:1.3;overflow-wrap:anywhere}.lv-hw-text small{color:var(--secondary);font-size:var(--fs-meta);line-height:1.35;overflow-wrap:anywhere}.lv-hw-done{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.lv-hw-done li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:44px;padding:4px 8px 4px 12px;background:var(--c-green-soft);color:var(--c-green-ink);border-radius:var(--radius-control);font-weight:600}.lv-hw-done svg{width:20px;height:20px;flex:0 0 20px}.lv-hw-done span{flex:1;min-width:0;overflow-wrap:anywhere}.lv-hw-done .button{min-height:44px}.lv-notes-summary{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:var(--fs-body);line-height:1.5}.lv-next-note{font-weight:600}.lv-next-note textarea{min-height:96px;font:inherit;font-weight:400}.lv-closing-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.lv-closing-actions .button{min-height:48px;padding:0 20px;font-weight:600}@media(max-width:1100px){.lv.has-panel .lv-body{grid-template-columns:200px minmax(0,1fr)}.lv.has-panel .lv-panel{position:fixed;top:16px;right:16px;bottom:16px;width:min(480px,calc(100vw - 32px));height:auto;z-index:60;box-shadow:0 16px 48px #11182733}}@media(max-width:900px){.lv-top{padding:12px}.lv-top-actions{margin-left:0;width:100%}.lv-end{margin-left:auto}.lv-body,.lv.has-panel .lv-body{grid-template-columns:minmax(0,1fr)}.lv-rail{position:static;max-height:none;overflow:visible}.lv-rail:not(.is-reordering) .lv-steps{flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:4px;scroll-snap-type:x proximity}.lv-rail:not(.is-reordering) .lv-step{flex:0 0 auto;max-width:200px;scroll-snap-align:start}.lv-rail:not(.is-reordering) .lv-step-main{border-color:var(--hairline)}.lv-rail:not(.is-reordering) .lv-step-main[aria-current=step]{border-color:var(--accent)}.lv-rail:not(.is-reordering) .lv-step-text{-webkit-line-clamp:1}.lv-add-btn{width:auto;padding:0 16px}.lv-menu{right:auto;min-width:220px}.lv-exercise{padding:16px}.lv-stage-canvas,.lv-stage-link,.lv-stage-textbook{height:max(420px,calc(100dvh - 200px))}.lv.has-panel .lv-panel{position:fixed;inset:0;width:auto;height:auto;border-radius:0;z-index:60}.lv-keys{display:none}}@media(max-width:600px){.lv-hw-options{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.lv-hw-option{transition:none}.lv-hw-option:hover:not(:disabled){transform:none}}@media(prefers-reduced-motion:reduce){.lv-rail:not(.is-reordering) .lv-steps{scroll-behavior:auto}}.lv-field .check-label{margin:0}.lv-field:has(input[name=lv-att]){flex-direction:row;flex-wrap:wrap;column-gap:24px;row-gap:4px;align-items:center}.lv-field:has(input[name=lv-att])>legend,.lv-field:has(input[name=lv-att])>.check-label:has(input[type=checkbox]),.lv-field:has(input[name=lv-att])>.lv-hint{flex-basis:100%}.lv-field:has(input[name=lv-att])>.check-label{min-width:0}.lv-call{min-height:36px;padding:0 12px;font-size:var(--fs-meta)}.lv-call svg{width:18px;height:18px}.lv-hw-option[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.lv-panel-toggle{min-height:44px;margin-left:auto;padding:0 12px;font-weight:600}.lv.is-wide .lv-body{grid-template-columns:minmax(0,1fr)}.lv.is-wide .lv-main{display:none}.lv.is-wide.has-panel .lv-panel{position:static;width:auto;height:max(480px,calc(100dvh - 232px));box-shadow:none}.lv.is-wide .lv-rail{position:static;max-height:none;overflow:visible;flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px}.lv.is-wide .lv-rail-head h2{display:none}.lv.is-wide .lv-rail:not(.is-reordering) .lv-steps{flex:1 1 0;min-width:0;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:2px}.lv.is-wide .lv-rail:not(.is-reordering) .lv-step{flex:0 0 auto;max-width:200px}.lv.is-wide .lv-rail:not(.is-reordering) .lv-step-main{border-color:var(--hairline)}.lv.is-wide .lv-rail:not(.is-reordering) .lv-step-main[aria-current=step]{border-color:var(--accent)}.lv.is-wide .lv-rail:not(.is-reordering) .lv-step-text{-webkit-line-clamp:1}.lv.is-wide .lv-add-btn{width:auto;padding:0 16px}.lv.is-wide .lv-menu{right:auto;left:auto;min-width:240px}.lv-panel .sb-body{min-height:0}.lv-panel .sbt{max-height:100%;overflow-y:auto}@media(max-width:900px){.lv.is-wide.has-panel .lv-panel{position:fixed;inset:0;height:auto;z-index:60}}.lv-group{text-align:left;padding:8px 8px 2px;color:var(--muted, var(--text));font-size:var(--fs-label);font-weight:700;white-space:nowrap}.lv-rail:not(.is-reordering) .lv-group{align-self:center}.lv-book-picker{display:grid;gap:12px}.lv-book-tasks{display:grid;gap:4px;max-height:40vh;overflow:auto;border:0;padding:0}.lv-book-tasks .check-label{min-height:44px}.lv-menu.lv-menu-pop{position:fixed;right:auto;width:320px;max-width:calc(100vw - 16px);z-index:80;box-shadow:0 12px 32px #0f172a29}.lv-menu-pop button{white-space:nowrap;text-align:left}.lv-menu-two{display:grid;min-width:0;line-height:1.25}.lv-menu-two small{color:var(--secondary);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-menu-pop button:has(.lv-menu-two){min-height:56px}.lv-step{position:relative}.lv-step-del{opacity:0;color:var(--error)}.lv-step:hover .lv-step-del,.lv-step:focus-within .lv-step-del{opacity:1}@media(hover:none){.lv-step-del{opacity:.7}}.lv-remove-page svg{width:18px;height:18px;color:var(--error)}.lv-shot-note{margin:0 0 8px}.lv-step-del.lv-step-del{position:absolute;right:4px;top:0;bottom:0;margin:auto 0;transform:none;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;background:var(--card);box-shadow:-8px 0 8px var(--card);pointer-events:none}.lv-step:hover .lv-step-del,.lv-step:focus-within .lv-step-del{pointer-events:auto}.lv-step-del:after{content:"";position:absolute;inset:-4px}.lv-step-del.lv-step-del:hover{transform:none}.lv-step{animation:lv-step-in .22s ease-out both;transition:background-color .2s,border-color .2s,box-shadow .2s}.lv-step.is-leaving{animation:lv-step-out .2s ease-in forwards;pointer-events:none}@keyframes lv-step-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@keyframes lv-step-out{0%{opacity:1;max-height:80px}to{opacity:0;max-height:0;padding-top:0;padding-bottom:0;margin:0;transform:translate(-12px)}}@media(prefers-reduced-motion:reduce){.lv-step,.lv-step.is-leaving{animation:none;transition:none}}.lv-main{animation:lv-main-in .2s ease-out both}@keyframes lv-main-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.lv-main{animation:none}}.lv-book-selects{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px}.lv-book-selects .field{margin:0}@media(max-width:560px){.lv-book-selects{grid-template-columns:1fr}}.lv-book-tasks{display:grid;gap:4px;max-height:min(56vh,520px);overflow:auto;margin:0 -4px;padding:0 4px}.lv-book-all,.lv-book-sec-head{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.lv-book-all{position:sticky;top:0;z-index:1;background:var(--card);border-bottom:1px solid var(--hairline)}.lv-book-all small,.lv-book-sec-head small{margin-left:auto;color:var(--secondary);font-size:var(--fs-meta)}.lv-book-sec{display:grid;gap:2px;padding-top:8px}.lv-book-sec-head strong{font-size:15px}.lv-book-task{display:grid;grid-template-columns:20px 28px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:6px 8px;border-radius:12px;cursor:pointer}.lv-book-task:hover{background:var(--page)}.lv-book-task.is-on{background:var(--accent-soft)}.lv-book-n{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--card);border:1px solid var(--hairline);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.lv-book-text{display:grid;gap:1px;min-width:0}.lv-book-text strong{font-weight:600}.lv-book-text small{color:var(--secondary);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-book-text em{font-style:normal;color:var(--accent-ink);font-size:12px;font-weight:600}.lv-book-task img{width:56px;height:40px;object-fit:cover;border-radius:6px}.lv-menu.lv-menu-pop{width:max-content;min-width:300px;max-width:min(440px,calc(100vw - 16px));box-sizing:border-box}.lv-menu.lv-menu-pop button{width:100%;box-sizing:border-box}.lv-book-picker input[type=checkbox]{width:20px;height:20px;min-width:20px;min-height:20px;margin:0;flex:none;accent-color:var(--accent)}.lv-book-picker label.lv-book-all,.lv-book-picker label.lv-book-sec-head{display:flex;grid-template-columns:none;flex-direction:row;font-weight:600}.lv-book-picker label.lv-book-task{display:grid;font-weight:400}.lv-book-picker label{margin:0}.lv-book-sec{gap:4px;padding-top:4px}.lv-bank-search{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--hairline);border-radius:12px;background:var(--card);margin:0}.lv-bank-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;min-height:40px}.lv-bank-search:focus-within{outline:2px solid var(--accent);outline-offset:1px}.lv-bank-levels{display:flex;flex-wrap:wrap;gap:6px}.lv-bank-levels button{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--hairline);background:var(--card);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.lv-bank-levels button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.lv-bank-count{margin:0;color:var(--secondary);font-size:var(--fs-meta)}.lv-bank-scroll{display:grid;gap:12px;max-height:min(56vh,520px);overflow:auto;margin:0 -4px;padding:0 4px;align-content:start}.lv-bank-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.lv-bank-card{display:grid;gap:6px;width:100%;padding:6px;text-align:left;font:inherit;border:1px solid var(--hairline);border-radius:12px;background:var(--card);cursor:pointer}.lv-bank-card:hover{background:var(--page)}.lv-bank-card.is-on{background:var(--accent-soft);border-color:var(--accent)}.lv-bank-thumb{position:relative;display:block;height:110px;overflow:hidden;border-radius:8px;background:var(--page)}.lv-bank-thumb img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}.lv-bank-tick{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff}.lv-bank-cap{display:grid;gap:1px;min-width:0;padding:0 2px 2px}.lv-bank-cap strong{font-size:13px;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lv-bank-cap small{color:var(--secondary);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-bank-off{display:grid;gap:12px;justify-items:start}.shell:has(.lv){background:var(--page);overflow-x:clip}main:has(>.lv){min-height:0;margin-bottom:0;padding:16px 20px;overflow-x:clip}.lv{max-width:100%}.lv.is-wide.has-panel .lv-panel{height:max(420px,calc(100dvh - 310px))}.kind-chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px}.kind-chips .button.kind-chip{min-height:44px;border-radius:var(--radius-chip);padding:8px 16px;box-shadow:none;color:var(--text)}.kind-chips .button.kind-chip.selected{background:var(--accent-soft)!important;color:var(--accent-ink)!important;border-color:var(--accent-ink)}.lib-heading{margin:28px 0 0;font-size:var(--fs-h2)}.lib-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:28px}.lib-heading-row .lib-heading{margin:0}.lib-heading-row .button svg{width:20px;height:20px}.lib-note{margin:4px 0 12px;color:var(--secondary);font-size:14px}.lib-empty{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0 0;color:var(--secondary);font-size:var(--fs-body)}.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:16px;margin-top:16px}.item-card,.folder-card{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 12px;padding:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.item-card[draggable=true]{cursor:grab}.item-card:hover{border-color:var(--accent);box-shadow:var(--edge-strong, var(--edge))}.item-card:hover .item-main h3 a{text-decoration:underline}.item-card:has(.stretched-link:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.folder-card{background:var(--c-amber-soft);border-color:transparent}.folder-card.is-drop{outline:3px dashed var(--c-amber-ink);outline-offset:2px}.item-icon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent-ink)}.item-icon svg{width:24px;height:24px}.kind-wordset .item-icon{background:var(--c-violet-soft);color:var(--c-violet-ink)}.folder-icon{background:var(--surface);color:var(--c-amber-ink)}.item-main{min-width:0}.item-main h3{margin:2px 0;font-size:16px;overflow-wrap:anywhere}.item-main h3 a{color:var(--text);text-decoration:none}.item-main h3 a:hover{text-decoration:underline}.folder-card .item-main h3 a,.folder-card .item-meta{color:var(--c-amber-ink)}.item-kind{margin:0;font-size:var(--fs-label);font-weight:600;color:var(--secondary)}.item-meta{margin:0;font-size:var(--fs-meta);color:var(--secondary)}.item-foot{grid-column:1 / -1;display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:8px;position:relative;z-index:1}.item-foot .more-menu{margin-left:auto}.folder-foot{justify-content:flex-end;margin-top:0}.assigned-count{position:relative;z-index:1;min-height:44px}.course-card-foot .assigned-count{position:relative;z-index:1;padding:6px 8px;margin-right:-8px;color:var(--secondary)}.assigned-count:hover:not(:disabled){background:transparent}.course-empty{margin:24px 0;padding:24px;border:2px dashed var(--hairline);border-radius:var(--radius-card);text-align:center}.course-empty h2{margin:0 0 4px}.course-empty p{margin:0 0 16px;color:var(--secondary)}button.course-create{font:inherit;color:inherit;cursor:pointer}.modal:has(.cc-kinds),.modal:has(.assign-dialog),.modal:has(.picker){width:min(640px,calc(100% - 32px))}.cc-kinds{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}.cc-kind{width:100%;height:100%;display:flex;gap:12px;align-items:flex-start;text-align:left;padding:16px;min-height:44px;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--hairline);border-radius:16px;box-shadow:var(--edge);cursor:pointer;transition:transform .12s,border-color .12s}.cc-kind:hover{border-color:var(--course, var(--accent));transform:translateY(-1px)}.cc-kind:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.cc-icon{flex:0 0 44px;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--course-soft, var(--accent-soft));color:var(--course-ink, var(--accent-ink))}.cc-icon svg{width:24px;height:24px}.cc-text{display:flex;flex-direction:column;gap:2px;min-width:0}.cc-text small{font-size:var(--fs-label);color:var(--secondary);font-style:italic}.create-form{display:grid;gap:14px}.create-form label{display:grid;gap:6px}.create-actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.cc-hues{display:flex;gap:10px;border:0;padding:0;margin:0;flex-wrap:wrap}.cc-hues legend{margin-bottom:6px;padding:0}.cc-hue{position:relative;width:44px;height:44px;border-radius:50%;background:var(--course);cursor:pointer}.cc-hue input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.cc-hue:has(input:checked){box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--text)}.cc-hue:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:4px}.assign-dialog{display:grid;gap:16px}.as-step{border:0;margin:0;padding:0 0 16px;border-bottom:1px solid var(--hairline);display:grid;gap:10px;min-width:0}.as-step legend{display:flex;align-items:center;gap:8px;padding:0;margin-bottom:10px;font-weight:700}.as-num{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-label)}.as-search{display:flex;align-items:center;gap:8px;padding:0 12px;min-height:44px;border:1px solid var(--border);border-radius:var(--radius-control);color:var(--secondary)}.as-search svg{width:20px;height:20px;flex:0 0 auto}.as-search input{border:0;outline:0;flex:1;min-width:0;min-height:40px;background:transparent;font:inherit;color:var(--text)}.as-search:focus-within{outline:3px solid var(--accent);outline-offset:1px}.as-chips,.as-segs{display:flex;flex-wrap:wrap;gap:8px}.as-chip,.as-seg{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-chip);background:var(--surface);color:var(--text);cursor:pointer;font-size:var(--fs-body)}.as-chip input,.as-seg input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.as-chip.is-group{border-style:dashed}.as-chip:has(input:checked),.as-seg:has(input:checked){background:var(--accent-soft);border-color:var(--accent-ink);color:var(--accent-ink);font-weight:600}.as-tick{display:none;margin-right:6px}.as-chip:has(input:checked) .as-tick{display:inline}.as-chip:has(input:focus-visible),.as-seg:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.as-seg.is-disabled{color:var(--secondary);background:var(--page);border-style:dashed;cursor:not-allowed}.as-seg.is-disabled input{cursor:not-allowed}.as-note,.as-sub{margin:0;font-size:var(--fs-meta);color:var(--secondary)}.as-sub{font-weight:600;color:var(--text)}.as-units{display:grid;gap:4px}.as-units .check-label{min-height:44px;display:flex;align-items:center;gap:10px}.as-date{display:grid;gap:6px;max-width:240px}.as-summary{margin:0;padding:12px 14px;border-radius:12px;background:var(--page);color:var(--text);font-size:var(--fs-meta);line-height:1.45}.side-panel{z-index:101;position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);overflow:auto;padding:24px;background:var(--surface);box-shadow:-8px 0 24px #1118271f;display:flex;flex-direction:column;gap:16px;animation:panel-in .2s ease-out}@keyframes panel-in{0%{transform:translate(24px)}to{transform:none}}@media(prefers-reduced-motion:reduce){.side-panel{animation:none}.cc-kind,.cc-kind:hover{transition:none;transform:none}}.side-panel h2{margin:0;padding-top:8px;font-size:20px;overflow-wrap:anywhere}.ap-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.ap-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:14px;border:1px solid var(--hairline);border-radius:16px}.ap-main{display:grid;gap:4px;min-width:0}.ap-detail{font-size:var(--fs-meta);color:var(--secondary);overflow-wrap:anywhere}.ap-part{font-weight:600;color:var(--text);margin-right:6px}.ap-progress{display:flex;align-items:center;gap:8px;font-size:var(--fs-meta);color:var(--secondary)}.ap-bar{flex:0 0 72px;height:6px;border-radius:3px;background:var(--track);overflow:hidden}.ap-bar span{display:block;height:100%;background:var(--accent)}.ap-row>.chip{align-self:start}.ap-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px}.ap-actions .button.danger{color:#b42318}.ap-actions .button.danger:hover:not(:disabled){background:var(--c-rose-soft);color:var(--c-rose-ink)}.ap-copy{grid-column:1 / -1;display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.ap-copy label{display:grid;gap:4px;flex:1;min-width:160px}.ap-toast{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:44px;margin-top:auto}.ap-empty{color:var(--secondary)}.picker{display:grid;gap:12px}.picker .search{width:100%;min-height:44px}.picker .kind-chips{margin:0}.pick-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:50vh;overflow:auto}.pick-row{width:100%;display:flex;align-items:center;gap:12px;padding:10px 12px;min-height:44px;text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--hairline);border-radius:14px;cursor:pointer}.pick-row:hover{border-color:var(--accent)}.pick-row:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.pick-text{display:grid;min-width:0}.pick-text small{color:var(--secondary);font-size:var(--fs-meta)}.assign-dialog .as-chip,.assign-dialog .as-seg,.cc-hue{margin:0;flex-direction:row}.assign-dialog .as-step{margin:0;border-width:0 0 1px;border-radius:0}.assign-dialog .as-units .check-label,.create-form label,.ap-copy label{margin:0}.modal:has(.cc-kinds){width:min(720px,calc(100% - 32px))}.cc-kinds{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.cc-kind{flex-direction:column;gap:12px;padding:12px}.cc-text{gap:2px}.cc-text strong{font-size:17px}.cc-text span{font-size:var(--fs-meta);color:var(--secondary)}.cc-art{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:112px;border-radius:12px;background:var(--course-soft, var(--accent-soft));position:relative;overflow:hidden}.cc-art i{display:block;height:6px;border-radius:3px;background:color-mix(in srgb,var(--course-ink, var(--accent-ink)) 22%,transparent)}.cc-art-course{flex-direction:column;align-items:stretch;padding:12px 20px 12px 34px;gap:6px}.cc-spine{position:absolute;left:20px;top:12px;bottom:12px;width:4px;border-radius:2px;background:var(--course, var(--accent))}.cc-unit{display:grid;grid-template-columns:18px 1fr 1fr 1fr;align-items:center;gap:6px;padding:4px 6px;border-radius:8px;background:var(--surface)}.cc-unit b{font-size:11px;color:var(--course-ink, var(--accent-ink))}.cc-art-lesson{padding:14px;gap:10px}.cc-part{flex:1;height:100%;display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:10px;background:var(--surface)}.cc-part-home{border:2px dashed color-mix(in srgb,var(--course-ink, var(--accent-ink)) 40%,transparent);background:transparent}.cc-part em{font-style:normal;font-size:11px;font-weight:700;color:var(--course-ink, var(--accent-ink))}.cc-card{position:absolute;width:96px;height:64px;border-radius:10px;background:var(--surface);box-shadow:0 2px color-mix(in srgb,var(--course-ink, var(--accent-ink)) 20%,transparent)}.cc-card:nth-child(1){transform:translate(-14px,8px) rotate(-8deg)}.cc-card:nth-child(2){transform:translate(10px,4px) rotate(6deg)}.cc-card-top{display:grid;place-items:center;font-weight:700;color:var(--text);transform:translateY(-4px)}.cc-kind:hover .cc-card-top{transform:translateY(-8px)}@media(max-width:520px){.cc-kinds{grid-template-columns:1fr}.cc-art{height:84px}.cc-text span{font-size:12px}}@media(prefers-reduced-motion:reduce){.cc-kind:hover .cc-card-top{transform:translateY(-4px)}}html:has(.book){scrollbar-gutter:stable}.book,.book-tree.is-sheet{--course: var(--accent);--course-soft: var(--accent-soft);--course-ink: var(--accent-ink);--card-shadow: 0 2px 12px rgba(17, 24, 39, .06);--stick: 0px}.book-sec-head.is-listen,.book-task.is-listen{--k: var(--c-blue);--k-soft: var(--c-blue-soft);--k-ink: var(--c-blue-ink)}.book-sec-head.is-speak,.book-task.is-speak{--k: var(--c-coral);--k-soft: var(--c-coral-soft);--k-ink: var(--c-coral-ink)}.book-sec-head.is-words,.book-task.is-words{--k: var(--c-teal);--k-soft: var(--c-teal-soft);--k-ink: var(--c-teal-ink)}.book-sec-head.is-grammar,.book-task.is-grammar{--k: var(--c-violet);--k-soft: var(--c-violet-soft);--k-ink: var(--c-violet-ink)}.book-sec-head.is-pronunciation,.book-task.is-pronunciation{--k: var(--hint);--k-soft: var(--c-amber-soft);--k-ink: var(--c-amber-ink)}.book-sec-head.is-course{--k: var(--course);--k-soft: var(--course-soft);--k-ink: var(--course-ink)}.book-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px}.book-toolbar .breadcrumbs ol{margin:0}.book-layout{display:grid;grid-template-columns:304px minmax(0,1fr);gap:24px;margin-top:8px;align-items:start}.book.tree-hidden .book-layout{grid-template-columns:minmax(0,1fr)}.book.tree-hidden .book-tree,.book-drawer-btn,.book-pill{display:none}.book-drawer-btn svg,.book-pill svg,.book-tree-toggle svg,.book-bar svg{width:20px;height:20px;flex:none}.book-drawer-btn,.book-tree-toggle{align-items:center;gap:8px;min-height:44px}.book-tree-toggle{display:inline-flex}.chev{display:inline-block;flex:none;width:8px;height:8px;margin:0 6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s}details[open]>summary>.chev,[aria-expanded=true]>.chev{transform:rotate(45deg)}.book-tree{position:sticky;top:16px;display:flex;flex-direction:column;width:304px;max-height:calc(100dvh - 32px);overflow:hidden;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.book-tree-head{flex:none;display:grid;gap:12px;padding:16px 16px 8px}.book-tree-top{display:flex;align-items:center;gap:8px}.book-tree-title{flex:1;min-width:0;margin:0;font-size:var(--fs-h2);font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.book-tree-close{display:none;place-items:center;flex:none;width:44px;height:44px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--secondary);cursor:pointer}.book-pcard{display:grid;gap:8px;padding:12px;background:var(--page);border-radius:var(--radius-control)}.book-pcard-line{margin:0;font-size:var(--fs-meta);font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums}.book-pcard-meta{display:flex;align-items:center;gap:8px;margin:0;color:var(--secondary);font-size:var(--fs-label);font-weight:600}.book-pcard progress,.book-sec-bar{appearance:none;width:100%;max-width:none;height:8px;margin:0;border:0;border-radius:8px;background:var(--track);overflow:hidden}.book-pcard progress::-webkit-progress-bar,.book-sec-bar::-webkit-progress-bar{background:var(--track);border-radius:8px}.book-pcard progress::-webkit-progress-value{background:var(--correct);border-radius:8px}.book-pcard progress::-moz-progress-bar{background:var(--correct);border-radius:8px}.book-sec-bar::-webkit-progress-value{background:var(--k);border-radius:8px}.book-sec-bar::-moz-progress-bar{background:var(--k);border-radius:8px}.book-tree nav{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;display:block;width:auto;margin:0;padding:4px 8px 16px 12px}.book-tree details{margin:0;padding:0;border:0;background:none}.book-tree summary{margin:0}.book-intro-card{display:flex;align-items:center;gap:12px;position:relative;min-height:44px;margin:0 0 8px;padding:0 12px;border-radius:var(--radius-control);color:var(--text);font-size:15px;font-weight:600;text-decoration:none}.book-intro-card:hover{background:var(--page)}.book-intro-card svg{width:20px;height:20px;flex:none;color:var(--course-ink)}.book-intro-card.is-active{background:var(--course-soft);color:var(--course-ink);font-weight:700;box-shadow:inset 3px 0 0 var(--course)}.book-block>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 8px 0 12px;border-radius:var(--radius-control);color:var(--text);font-size:15px;font-weight:700;cursor:pointer;list-style:none}.book-block>summary::-webkit-details-marker{display:none}.book-block>summary:hover{background:var(--page)}.book-block.has-here>summary{background:var(--course-soft);color:var(--course-ink)}.book-block-name{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-block-meta{flex:none;color:var(--secondary);font-size:var(--fs-label);font-weight:600;font-variant-numeric:tabular-nums}.book-block.has-here>summary .book-block-meta{color:var(--course-ink)}.book-block>summary:focus-visible,.book-row:focus-visible,.book-intro-card:focus-visible,.book-sec-toggle:focus-visible,.book-pill:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.book-block+.book-block{margin-top:8px}.book-row{position:relative;display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 8px 0 12px;border:0;border-radius:10px;background:none;color:var(--text);text-align:left;text-decoration:none;font:inherit;font-size:15px;font-weight:500;cursor:pointer}.book-row:hover{background:var(--page)}.book-row.is-active{color:var(--course-ink);font-weight:700}.book-row-n{flex:none;width:44px;color:var(--secondary);font-size:var(--fs-meta);font-variant-numeric:tabular-nums;white-space:nowrap}.book-row.is-active .book-row-n{color:var(--course-ink)}.book-row-t{flex:1;min-width:0;overflow-wrap:break-word;line-height:1.25;padding:4px 0}.book-row.is-stub{color:var(--secondary)}.book-toc{margin:4px 0 12px 12px;padding:0 0 0 4px;border-left:2px solid var(--hairline)}.book-sec-row{display:flex;align-items:center;margin-top:8px}.book-toc-sec:first-child .book-sec-row{margin-top:0}.book-row.is-sec{flex:1;min-width:0;min-height:44px;padding-left:8px;color:var(--secondary);font-size:var(--fs-meta);font-weight:700;letter-spacing:0;text-transform:none}.book-row-count{flex:none;margin-left:auto;font-size:var(--fs-label);font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums}.book-sec-toggle{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:none;color:var(--secondary);cursor:pointer}.book-sec-toggle:hover{background:var(--page)}.book-sec-toggle .chev{margin:0}.book-row.is-task{min-height:44px;padding-left:8px;font-size:14px}.book-row.is-task .book-row-n{width:18px}.book-row.is-part{min-height:44px;font-size:14px}.book-part-ico{display:inline-grid;flex:none;color:var(--secondary)}.book-part-ico svg{width:18px;height:18px}.book-row.is-spy{background:var(--course-soft);color:var(--course-ink);font-weight:700;box-shadow:inset 3px 0 0 var(--course)}.book-row.is-spy .book-row-n,.book-row.is-spy .book-part-ico,.book-row.is-spy .book-row-count{color:var(--course-ink)}.book-dot{position:relative;flex:none;width:18px;height:18px;box-sizing:border-box;border:2px solid var(--border);border-radius:50%}.book-dot.is-done{background:var(--correct);border-color:var(--correct)}.book-dot.is-done:after{content:"";position:absolute;left:4.5px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.book-dot.is-partial{border-color:var(--hint);background:conic-gradient(var(--hint) 0 50%,transparent 0)}.ring{flex:none}.ring-track{fill:none;stroke:var(--track);stroke-width:3}.ring-fill{fill:none;stroke:var(--correct);stroke-width:3;stroke-linecap:round}.ring.is-full .ring-track{stroke:var(--correct)}.book-summary .ring-track{stroke:var(--hairline)}.book-main{min-width:0}.book-page{width:100%;max-width:800px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.book-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-areas:"main sticker" "cando sticker";align-items:start;gap:24px 32px;padding:40px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--card-shadow)}.book-hero.is-plain{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "cando"}.book-hero:not(.is-plain) .book-hero-main{padding-right:8px}.book-hero:before{content:"";position:absolute;right:-80px;top:-110px;width:300px;height:300px;border-radius:50%;background:var(--course-soft)}.book-hero>*{position:relative}.book-hero-main{grid-area:main;display:grid;gap:8px;min-width:0}.book-kicker{margin:0;color:var(--secondary);font-size:var(--fs-meta);font-weight:700;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}.book-hero h1{margin:0;font-size:clamp(32px,4vw,44px);font-weight:800;line-height:1.1;letter-spacing:-.02em;overflow-wrap:anywhere}.book-theme{margin:0;color:var(--course-ink);font-size:24px;font-weight:700;line-height:1.25}.book-cando{grid-area:cando;display:flex;align-items:flex-start;gap:16px;margin:0;padding:20px 24px;background:var(--course-soft);border-radius:16px;color:var(--course-ink)}.book-cando p{margin:0;font-size:18px;line-height:1.5}.book-cando strong{display:block;margin-bottom:4px;font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase}.book-cando-ico{display:inline-grid;flex:none;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--surface)}.book-cando-ico svg{width:24px;height:24px}.book-sticker{grid-area:sticker;align-self:start;justify-self:stretch;width:auto;min-width:0;padding:16px;background:var(--c-amber-soft);color:var(--c-amber-ink);border-radius:var(--radius-control);box-shadow:var(--edge-strong);overflow-wrap:anywhere}.book-sticker-chip{display:none}.book-sticker strong{display:block;margin-bottom:4px;font-size:var(--fs-meta);letter-spacing:.08em;text-transform:uppercase}.book-sticker p{margin:0;font-size:16px;line-height:1.4}.book-hero-art{grid-area:art;min-width:0}.book-hero-art .bx-fig{display:block;width:100%}.book-hero-art .bx-image{display:block;width:100%;aspect-ratio:16 / 9;max-height:none;border:0;border-radius:16px;object-fit:cover;background:var(--course-soft)}.book-hero.has-art{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"main art" "cando sticker"}.book-hero.has-art .book-hero-main{align-self:center}.book-hero.has-art .book-sticker{align-self:start}.book-reward{display:inline-flex;align-items:center;gap:12px;color:var(--c-amber-ink);font-size:var(--fs-body)}.book-reward strong{font-weight:800}.book-reward-img{display:inline-grid;flex:none;width:64px;height:64px}.book-reward-img .bx-fig{display:block;width:64px;height:64px}.book-reward-img .bx-image{display:block;width:64px;height:64px;max-height:none;border:0;border-radius:0;object-fit:contain}.book-sec-head.has-reward .book-reward-img{animation:book-pop .45s cubic-bezier(.34,1.56,.64,1) both}@keyframes book-pop{0%{transform:scale(.3) rotate(-14deg);opacity:0}to{transform:none;opacity:1}}.book-stickers{display:grid;gap:16px}.book-stickers h2{margin:0;font-size:32px;font-weight:800;line-height:1.1;letter-spacing:-.02em}.book-stickers ul{display:flex;flex-wrap:wrap;gap:16px;margin:0;padding:0;list-style:none}.book-stickers li{display:grid;justify-items:center;gap:4px;width:96px;color:var(--secondary);font-size:var(--fs-meta);font-weight:600;text-align:center;overflow-wrap:anywhere}.book-body{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.book-hint{margin:0;color:var(--secondary);font-size:var(--fs-body);line-height:1.5;max-width:75ch}.book-lead{margin:0 0 16px;font-size:18px;line-height:1.5;max-width:65ch}.book-empty{display:grid;justify-items:start;gap:16px;padding:24px;background:var(--surface);border:1px dashed var(--hairline);border-radius:var(--radius-card)}.book-empty p{margin:0}.book-sec{display:grid;gap:20px;scroll-margin-top:calc(var(--stick) + 16px)}.book-sec-body,.book-homework{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.book-sec:focus-visible,.book-task:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:16px}.book-sec-head{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:12px 16px}.book-sec-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--k-soft);color:var(--k-ink);box-shadow:var(--edge-strong)}.book-sec-ico svg{width:32px;height:32px}.book-sec-titles{display:grid;gap:4px;min-width:0}.book-card-h{display:grid;justify-items:start;gap:4px;margin:0;font-size:32px;font-weight:800;line-height:1.1;letter-spacing:-.02em;overflow-wrap:anywhere}.book-card-h:has(.book-card-name) .book-card-range{padding:3px 12px;border-radius:var(--radius-chip);background:var(--k-soft);color:var(--k-ink);font-size:var(--fs-label);font-weight:700;letter-spacing:.08em;line-height:1.4;text-transform:uppercase}.book-card-sep{display:none}.book-sec-meta{display:flex;align-items:center;gap:12px;margin:0;color:var(--secondary);font-size:var(--fs-body);font-weight:600;font-variant-numeric:tabular-nums}.book-stars{display:inline-flex;gap:2px}.book-stars span{display:inline-grid;color:var(--border)}.book-stars span.is-on{color:var(--hint)}.book-stars svg{width:20px;height:20px}.book-stars span.is-on path{fill:currentColor}.book-sec-bar{grid-column:1 / -1}.book-card,.book-task,.book-written{padding:28px;background:var(--surface);border:1px solid var(--hairline);border-radius:16px;box-shadow:var(--card-shadow)}.book-note{position:relative;margin:0;padding:28px;background:var(--c-amber-soft);border:1px solid transparent;border-radius:16px;color:var(--c-amber-ink)}.book-note-label{display:inline-flex;align-items:center;min-height:24px;margin:0 0 8px;padding:0 10px;border-radius:var(--radius-chip);background:var(--surface);color:var(--c-amber-ink);font-size:var(--fs-label);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.book-note h3{margin:0 0 8px;font-size:18px}.book-note p{margin:0;max-width:70ch;font-size:18px;line-height:1.6;white-space:pre-line}.book-task{scroll-margin-top:calc(var(--stick) + 16px)}.book-task-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.book-kind{display:grid;flex:none;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--k-soft);color:var(--k-ink)}.book-kind svg{width:24px;height:24px}.book-task-head h3{margin:0;color:var(--k-ink);font-size:var(--fs-meta);font-weight:800;letter-spacing:.08em;line-height:20px;text-transform:uppercase}.book-task-tags{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto}.book-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:var(--radius-chip);font-size:var(--fs-label);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.book-chip.is-class{background:var(--c-rose-soft);color:var(--c-rose-ink)}.book-chip.is-opt{background:var(--c-blue-soft);color:var(--c-blue-ink)}.book-task-state{display:inline-grid}.book-task-state svg{width:24px;height:24px}.book-task-state.is-good{color:var(--c-green-ink)}.book-task-state.is-bad{color:var(--c-rose-ink)}.book-task-instr{margin:0 0 16px;color:var(--text);max-width:65ch;font-size:20px;line-height:28px}.book-media{margin-bottom:16px}.book-media audio,.book-media img,.book-media iframe{max-width:100%}.book-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;margin-bottom:16px}.book-pic{display:grid;place-items:center;aspect-ratio:1;overflow:hidden;border:1px solid var(--hairline);border-radius:12px;background:var(--page)}.book-pic>*{width:100%;height:100%;margin:0}.book-pic img{width:100%;height:100%;object-fit:cover}.lp.book-ex{display:block;max-width:none;min-height:0;margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none}.book-ex .lp-answer{margin:0}.book-ex .bx-media .bx-fig,.book-ex .bx-media>.bx-image,.book-ex .bx-media>.bx-emoji,.book-ex .bx-media>.bx-placeholder{width:100%;max-width:280px}.book-ex .bx-media .bx-fig .bx-image{width:100%}.book-credits{margin-top:16px;color:var(--secondary);font-size:var(--fs-meta)}.book-credits summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.book-credits ul{margin:0 0 8px;padding-left:20px}.book-credits a{color:inherit}.book-main-btn{min-width:160px;text-decoration:none}.book-main-btn:disabled{background:var(--page);border-color:var(--hairline);color:var(--secondary);box-shadow:none;opacity:1;cursor:not-allowed}.book-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.book-bar-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.book-bar .button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.book-notice{min-height:20px;margin:0 0 8px;color:var(--secondary);font-size:var(--fs-meta)}.book-result{margin:0;font-size:var(--fs-h2);font-weight:700}.book-q{padding:16px 0;border-top:1px solid var(--hairline)}.book-q:first-of-type{border-top:0}.book-q .eyebrow{display:block;margin-bottom:8px}.book-q h3{margin:0 0 16px;font-size:20px;line-height:28px;font-weight:400}.book-quiz>.book-hint{margin-bottom:8px}.book-written h3{margin:0 0 8px;font-size:18px}.book-written .book-hint{margin-bottom:16px}.book-written-item+.book-written-item{margin-top:16px}.book-written-text{margin:8px 0 0;font-size:18px;line-height:1.5;max-width:70ch}.book-task .bx-marks{display:none}.book-note-kind{margin:0}.book-legend{display:grid;gap:8px;margin:0;padding:0;list-style:none}.book-legend li{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:16px;min-height:56px;padding:8px 0;border-top:1px solid var(--hairline);font-size:18px;line-height:1.4}.book-legend li:first-child{border-top:0}.book-legend-ico{display:flex}.book-legend-btn{pointer-events:none;gap:8px}.book-legend-btn svg{width:20px;height:20px}.book-legend-note{display:inline-block;padding:8px 16px;background:var(--c-amber-soft);border-radius:var(--radius-control);color:var(--c-amber-ink);font-weight:700}.book-summary{display:flex;align-items:center;gap:24px;padding:16px 24px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.book-grade{display:flex;align-items:center;gap:16px;flex:none;position:relative}.book-grade>div{display:grid}.book-grade strong{font-size:32px;line-height:1.1}.book-grade .ring{flex:none}.book-stats{display:flex;flex-wrap:wrap;gap:8px 32px;margin:0}.book-stats div{display:grid;gap:2px}.book-stats dt{color:var(--secondary);font-size:var(--fs-meta)}.book-stats dd{margin:0;font-size:var(--fs-h2);font-weight:700;font-variant-numeric:tabular-nums}.book-summary-empty{display:flex;flex:1;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px}.book-summary-empty p{margin:0;color:var(--secondary)}.book-summary-empty .button{min-height:44px;display:inline-flex;align-items:center;text-decoration:none}.book-skills{display:grid;gap:8px;margin:24px 0 0;padding:0;list-style:none}.book-skill{display:grid;grid-template-columns:160px minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-control)}.book-skill-name{font-weight:600}.book-bar-track{display:flex;height:8px;overflow:hidden;border-radius:8px;background:var(--hairline)}.book-bar-track .is-ok{background:var(--c-green)}.book-bar-track .is-miss{background:var(--c-rose-ink)}.book-skill-val{color:var(--secondary);font-size:var(--fs-meta);font-variant-numeric:tabular-nums;white-space:nowrap}.book-table{width:100%;border-collapse:collapse;margin:12px 0 20px;background:var(--surface);font-size:var(--fs-body)}.book-table caption{padding:10px 12px;text-align:left;font-weight:700;font-size:var(--fs-h2)}.book-table th,.book-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--hairline);overflow-wrap:anywhere;vertical-align:top}.book-table thead th{font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--secondary)}.book-table tbody th{font-weight:600}.book-total th,.book-total td{font-weight:700;background:var(--page)}.book-table-wrap{overflow-x:auto;border:1px solid var(--hairline);border-radius:var(--radius-control);margin-bottom:16px}.book-table-wrap .book-table{margin:0}.book-table-wrap:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.book-wordlist section{margin-top:8px}.book-wordlist h2{margin:16px 0 0}.book-cards .book-bar{align-items:flex-start}.book-backdrop{display:none}@media(max-width:1099px){.book{--stick: 56px}main:has(.book){padding-left:24px;padding-right:24px}.book-layout{grid-template-columns:minmax(0,1fr)}.book-toolbar{position:sticky;top:0;z-index:15;margin:0 -8px;padding:0 8px;background:var(--page)}.book-tree-toggle{display:none}.book-drawer-btn{display:inline-flex}.book-tree,.book.tree-hidden .book-tree{display:none}.book-tree.is-open,.book.tree-hidden .book-tree.is-open{display:flex;position:fixed;z-index:60;inset:0 auto 0 0;width:min(88vw,360px);max-height:none;border-radius:0 var(--radius-card) var(--radius-card) 0}.book-tree.is-open .book-tree-close{display:grid}.book-backdrop{display:block;position:fixed;z-index:55;inset:0;border:0;background:#11182773}}@media(max-width:900px){.book{--stick: 108px;padding-bottom:96px}main:has(.book){padding-left:16px;padding-right:16px}.book-toolbar{position:static;margin:0;padding:0;background:none}.book-drawer-btn{display:none}.book-pill{display:flex;align-items:center;gap:12px;position:sticky;z-index:15;top:64px;width:100%;height:44px;min-height:44px;box-sizing:border-box;margin:-32px 0 8px;padding:0 16px 0 12px;border:1px solid var(--hairline);border-radius:0 0 var(--radius-control) var(--radius-control);background:var(--surface);color:var(--text);font:inherit;font-size:15px;font-weight:700;text-align:left;white-space:nowrap;box-shadow:0 2px 8px #11182714;cursor:pointer}.book-pill span{min-width:0;overflow:hidden;text-overflow:ellipsis}.book-pill .ring{width:24px;height:24px}.book-hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "sticker" "cando";padding:16px;gap:8px}.book-hero.has-art{grid-template-columns:minmax(0,1fr);grid-template-areas:"art" "main" "sticker" "cando";gap:12px 8px}.book-hero-art .bx-image{aspect-ratio:auto;height:min(180px,56.25vw);object-fit:contain}.book-hero.has-art .book-hero-main{align-self:start}.book-hero:before{width:180px;height:180px;right:-60px;top:-80px}.book-hero h1{font-size:30px}.book-theme{font-size:20px}.book-cando{padding:12px 16px}.book-cando p{font-size:15px;line-height:1.4}.book-cando-ico{display:none}.book-hero-main{gap:4px}.book-sticker{justify-self:stretch;align-self:auto;width:100%;padding:0;background:none;box-shadow:none;transform:none}.book-sticker-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px 0 16px;border:0;border-radius:var(--radius-chip);background:var(--c-amber-soft);color:var(--c-amber-ink);font:inherit;font-size:var(--fs-body);font-weight:700;cursor:pointer}.book-sticker-chip svg{width:20px;height:20px}.book-sticker-body{display:none;margin-top:8px;padding:12px 16px;background:var(--c-amber-soft);border-radius:var(--radius-control)}.book-sticker.is-open .book-sticker-body{display:block}.book-sticker-body strong{display:none}.book-body{gap:24px}.book-sec-head{grid-template-columns:44px minmax(0,1fr);gap:8px 12px}.book-sec-ico{width:44px;height:44px;border-radius:12px}.book-sec-ico svg{width:24px;height:24px}.book-card-h{font-size:24px}.book-card,.book-written{padding:20px}.book-task-instr{font-size:18px;line-height:26px}.book-legend li{grid-template-columns:minmax(0,1fr);gap:8px}.book-summary{flex-direction:column;align-items:flex-start;gap:16px;padding:16px}.book-skill{grid-template-columns:minmax(0,1fr) auto}.book-skill .book-bar-track{grid-column:1 / -1;grid-row:2}.book-bar{gap:8px}.book-cards .book-bar{flex-direction:column;align-items:stretch}.modal:has(.book-tree.is-sheet){top:auto;bottom:0;left:0;transform:none;width:100%;max-height:min(85dvh,680px);border-radius:20px 20px 0 0;border-bottom:0}.modal:has(.book-tree.is-sheet)[data-state=open]{animation:book-sheet-in .2s ease-out}.modal:has(.book-tree.is-sheet) .modal-head h2{font-size:var(--fs-h2)}.book-tree.is-sheet{position:static;display:block;width:auto;max-height:none;overflow:visible;border:0;border-radius:0;background:none}.book-tree.is-sheet .book-tree-head{padding:0 0 8px}.book-tree.is-sheet .book-tree-top{display:none}.book-tree.is-sheet nav{overflow:visible;padding:4px 0 16px}.book-tree.is-sheet .book-row,.book-tree.is-sheet .book-row.is-task,.book-tree.is-sheet .book-row.is-part{min-height:44px}.book-tree.is-sheet .book-row.is-sec{min-height:40px}.book-tree.is-sheet .book-sec-toggle{width:44px;height:44px}}.book-admin{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin:4px 0 8px;padding:12px 16px 12px 20px;background:var(--course-soft);border-radius:var(--radius-card);box-shadow:inset 4px 0 0 var(--course)}.book-admin-id{display:grid;gap:4px;min-width:0}.book-admin-name{margin:0;font-size:var(--fs-h2);font-weight:700;line-height:1.25;color:var(--text);overflow-wrap:anywhere}.book-admin-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;color:var(--text)}.book-admin .course-level{background:var(--surface)}.book-admin .course-stats,.book-admin .avatar-stack{color:var(--text)}.book-admin .stack-avatar{border-color:var(--course-soft)}.book-admin-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.book-admin-actions .button{min-height:44px;padding-left:12px;padding-right:12px}.book-admin-actions .button.primary{background:var(--course);border-color:var(--course);box-shadow:0 3px 0 var(--course-ink)}.book-admin-actions .more-menu{position:relative;z-index:2}.book-lrow{display:grid}.book-lrow-line{display:flex;align-items:center;min-width:0}.book-lrow-line .book-row{flex:1;min-width:0}.book-lrow-menu .more-button{min-width:44px;min-height:44px;padding:0;border-color:transparent;background:transparent;box-shadow:none;color:var(--secondary)}.book-lrow-menu .more-button:hover:not(:disabled){background:var(--page);color:var(--text)}.book-lrow-menu .more-menu-list{z-index:70}.book-lrow-sub{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px;padding:0 0 6px 72px;margin-top:-8px}.book-lrow-meta{margin:0;color:var(--secondary);font-size:var(--fs-label);line-height:1.3}.book-lrow-sub .status-open{min-height:44px;padding:0 4px;border-radius:var(--radius-chip);text-align:left}.book-lrow-sub .status-open .chip{white-space:normal}.book-lrow-sub .status-open:hover:not(:disabled){background:transparent}.book-lrow-sub .status-open:focus-visible{outline:3px solid var(--accent);outline-offset:0}.book-add{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:var(--radius-control);background:none;color:var(--course-ink);font:inherit;font-size:15px;font-weight:600;text-align:left;text-decoration:none;cursor:pointer}.book-add span{display:inline-grid;place-items:center;width:20px;font-size:20px;font-weight:500;line-height:1}.book-add:hover{background:var(--course-soft)}.book-add:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.book-add-unit{margin-top:8px;border:1px dashed var(--hairline)}.book-empty-course{max-width:800px;margin:0 auto;width:100%;box-sizing:border-box}.book-empty-course h1{margin:0;font-size:var(--fs-h2)}.book-empty-units{display:grid;gap:4px;width:100%;margin:0;padding:0;list-style:none}.book-empty-units li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px;min-height:52px;padding:0 4px 0 12px;border-radius:var(--radius-control);background:var(--page);font-weight:600}.book-empty-units .book-add{width:auto}.book-toast{position:fixed;z-index:80;left:50%;bottom:16px;transform:translate(-50%);display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;max-width:calc(100vw - 32px);box-sizing:border-box;min-height:52px;padding:4px 4px 4px 20px;background:var(--text);color:#fff;border-radius:var(--radius-control);box-shadow:0 8px 24px #11182747}.book-toast .button{min-height:44px;background:transparent;border-color:#fff;color:#fff;box-shadow:none}.book-toast .button:hover:not(:disabled){background:#ffffff29;color:#fff}.book-toast-close{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius-control);background:transparent;color:#fff;cursor:pointer}.book-toast-close svg{width:20px;height:20px}.book-toast-close:hover{background:#ffffff29}.book-toast .button:focus-visible,.book-toast-close:focus-visible{outline:3px solid #fff;outline-offset:2px}@media(max-width:900px){.book-admin{padding:12px 12px 12px 16px}.book-admin-actions{width:100%}.book-toolbar{flex-wrap:wrap}.book-toolbar .breadcrumbs{flex:1 1 100%}.book-toast{bottom:64px}.book-tree.is-sheet .book-add{min-height:44px}}@keyframes book-sheet-in{0%{transform:translateY(24px)}}@media(min-width:1100px){.book.tree-hidden .book-layout{grid-template-columns:minmax(0,1fr)}}@media(min-width:1100px)and (max-width:1319px){.book-layout{grid-template-columns:260px minmax(0,1fr);gap:16px}.book-tree{width:260px}}@media(prefers-reduced-motion:reduce){.book *,.book *:before,.book *:after,.modal:has(.book-tree.is-sheet){transition:none!important;animation:none!important;scroll-behavior:auto!important}}.book-to-board{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:0 0 16px;padding:0 14px;border:1px solid var(--hairline);border-radius:var(--radius-sm, 10px);background:var(--surface, #fff);color:var(--text);font-weight:600;cursor:pointer}.book-to-board svg{width:18px;height:18px}.book-to-board:hover{background:var(--hover, rgba(0,0,0,.04))}.book-steps-toggle[aria-pressed=true]{background:var(--accent-soft, var(--surface));border-color:var(--accent)}.bs-bar{position:sticky;top:64px;z-index:15;display:flex;align-items:center;gap:4px;min-height:52px;margin:0 0 12px;padding:4px;box-sizing:border-box;background:var(--surface, #fff);border:1px solid var(--hairline);border-radius:var(--radius-card)}.bs-btn{flex:none;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:inherit;cursor:pointer}.bs-btn:disabled{opacity:.35;cursor:default}.bs-btn svg{width:22px;height:22px}.bs-btn .chev{margin:0;width:10px;height:10px}.bs-btn .bs-prev{transform:rotate(135deg);margin-left:4px}.bs-btn .bs-next{transform:rotate(-45deg);margin-right:4px}.bs-count{flex:1;min-width:0;min-height:44px;display:flex;align-items:center;gap:8px;padding:0 8px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.bs-count strong{flex:none;font-size:17px}.bs-count span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:14px}.bs-btn:focus-visible,.bs-count:focus-visible,.bs-item:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.bs-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.bs-item{width:100%;min-height:48px;display:flex;align-items:center;gap:10px;padding:6px 10px;border:0;border-radius:12px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.bs-item.is-here{background:var(--accent-soft, rgba(0, 0, 0, .06));font-weight:600}.bs-n{flex:none;min-width:22px;color:var(--muted)}.bs-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(prefers-reduced-motion:no-preference){.book-body.is-steps .book-sec-body{animation:bs-in .18s ease-out}}@keyframes bs-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}@media(min-width:901px){.bs-bar{top:0}}.book-modeseg button{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--secondary);font:inherit;font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer}.book-modeseg button:hover{color:var(--text)}.book-modeseg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.book-modeseg button:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.book-card-btn{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 12px;max-width:100%;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;cursor:pointer}.book-card-btn:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:8px}.book-card-btn .chev{margin-left:auto}.book-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface)}.book-tabs button{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:transparent;color:var(--secondary);font:inherit;font-weight:600;cursor:pointer}.book-tabs button svg{width:20px;height:20px}.book-tabs button.is-on{background:var(--course-soft);color:var(--course-ink)}.book-tabs button:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.book-hero.is-compact{padding:12px 16px;gap:4px 16px}.book-hero.is-compact:before{display:none}.book-hero.is-compact h1{font-size:24px}.book-hero.is-compact .book-hero-main{gap:2px}.book-hero-more{justify-self:start;min-height:44px}.rs-fold{margin:0}.rs-fold[open]>summary{margin-bottom:8px}.rs-fold>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border-radius:var(--radius-control);cursor:pointer;font-weight:600}.rs-fold>summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.rs-fold .rs-head h2{display:none}.book-resume{display:flex;align-items:center;gap:8px;margin:0;color:var(--course-ink);font-size:var(--fs-meta);font-weight:700}.book-resume span{width:10px;height:10px;border-radius:50%;background:var(--course)}.book-resume-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--course)}@media(max-width:900px){body:has(.bs-bar) .sidebar{display:none}.bs-bar{position:fixed;inset:auto 0 0;z-index:40;margin:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:16px 16px 0 0;box-shadow:0 -4px 16px #11182714}.bs-btn{width:48px;height:48px}.bs-count{min-height:48px}.bs-count span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}.book:has(.bs-bar){padding-bottom:96px}}@media(max-width:1319px){.book-row{gap:4px;padding-left:8px}.book-row-n{width:40px}.book-lrow-sub{padding-left:52px}}.book-row-main{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.book-row-main .book-row-n{width:auto;font-size:var(--fs-label);line-height:1.2;padding-top:4px}.book-row-main .book-row-t{flex:none;padding:0 0 4px}.book-row-sub{color:var(--secondary);font-size:var(--fs-label);font-weight:600;letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}.book-row.is-sec .book-row-t{font-size:14px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--text);padding-bottom:0}.book-sec-meta{flex-wrap:wrap;gap:4px 12px}.book-sec-count{white-space:nowrap}.book-lrow-sub{margin-top:0;padding-left:8px}@media(max-width:900px){.bs-count{flex-direction:column;align-items:flex-start;justify-content:center;gap:0}.bs-count strong{font-size:13px;color:var(--secondary)}.bs-count span{color:var(--text);font-size:15px;font-weight:600}}.book-row.is-locked{color:var(--secondary);cursor:default;opacity:.8}.book-row.is-locked:hover{background:none}.book-row.is-locked svg{flex:none;width:20px;height:20px}.book-locked{display:grid;justify-items:center;gap:8px;text-align:center;color:var(--secondary)}.book-locked svg{width:32px;height:32px}.book-tree-head{gap:8px;padding:12px 12px 4px}.book-tree-title{font-size:16px;font-weight:700}.book-pcard{gap:6px;padding:8px 12px}.book-pcard-line{font-size:13px;font-weight:600}.book-pcard progress{height:4px}.book-tree nav{padding:4px 8px 12px}.book-intro-card{min-height:36px;margin:0 0 4px;padding:0 8px;gap:8px;font-size:14px;font-weight:500}.book-intro-card svg{width:18px;height:18px}.book-block>summary{position:relative;min-height:36px;padding:0 8px;gap:8px;font-size:14px;font-weight:600}.book-block>summary:after{content:"";position:absolute;inset:-4px 0}.book-block>summary .chev{order:3;margin:0}.book-block-name{overflow:visible;text-overflow:clip;white-space:normal}.book-block-meta{font-size:12px;font-weight:500}.book-block+.book-block{margin-top:4px}.book-block.has-here>summary{background:none;color:var(--text)}.book-row,.book-row.is-task,.book-row.is-part{min-height:36px;gap:8px;padding:0 8px;border-radius:8px;font-size:14px;font-weight:400}.book-row:after{content:"";position:absolute;inset:-4px 0}.book-row-t{padding:0;line-height:1.3;overflow-wrap:break-word}.book-row .book-row-n{width:auto;font-size:inherit;color:var(--secondary);padding:0}.book-row-main .book-row-n{display:inline;font-size:inherit;line-height:inherit;padding:0}.book-row.is-active{background:var(--course-soft);color:var(--text);font-weight:600}.book-row.is-active .book-row-n{color:var(--secondary)}.book-row.is-task .book-row-n{width:18px;font-size:12px}.book-row.is-task,.book-row.is-part{font-size:13px}.book-row.is-sec{min-height:36px;padding:0 4px 0 8px;font-size:13px}.book-row.is-sec .book-row-t{font-size:13px;font-weight:600}.book-row-sub,.book-row-count{font-size:12px;font-weight:400;color:var(--secondary)}.book-row.is-spy{background:none;color:var(--text);box-shadow:inset 2px 0 0 var(--course)}.book-row.is-spy .book-row-n,.book-row.is-spy .book-part-ico,.book-row.is-spy .book-row-count{color:var(--secondary)}.book-row.is-spy .book-row-t{font-weight:600}.book-toc{margin:0 0 4px 8px;padding:0 0 0 4px;border-left:1px solid var(--hairline)}.book-sec-row{margin-top:0}.book-sec-toggle{position:relative;width:36px;height:36px}.book-sec-toggle:after{content:"";position:absolute;inset:-4px}.book-lrow-sub{padding:0 8px 4px;margin:-4px 0 0}.book-lrow-meta{font-size:12px;color:var(--secondary)}.book-lrow-who{flex:none;color:var(--secondary);font-size:12px;font-variant-numeric:tabular-nums}.book-lrow-menu .more-button{min-width:36px;min-height:36px}@media(hover:hover)and (pointer:fine){.book-lrow:not(:hover):not(:focus-within):not(:has(.is-active)) .more-button[aria-expanded=false]{opacity:0}}.book-tree.is-sheet .book-row,.book-tree.is-sheet .book-row.is-task,.book-tree.is-sheet .book-row.is-part,.book-tree.is-sheet .book-row.is-sec{min-height:40px}.book-lrow-menu .more-button{min-width:28px;padding:0}@media(max-width:1319px){.book-lrow-who{display:none}}.book-lrow-sub{margin:0;padding:0 8px 4px}.book-lrow:has(.book-row.is-active){background:var(--course-soft);border-radius:8px}.book-lrow .book-row.is-active{background:none}.book-lrow-sub{padding:4px 8px 6px;margin:0}.book-row.is-sec{padding-top:6px;padding-bottom:6px;min-height:44px}.book-row-main .book-row-t{padding:0}.book-sec-row{align-items:center}.book-sec-toggle.is-blank{cursor:default;pointer-events:none}.book-toolbar{flex-wrap:nowrap;gap:8px;min-height:52px}.book-toolbar .book-icon-btn{flex:none;width:44px;min-width:44px;padding:0;justify-content:center}.book-crumbs{flex:1;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:0 12px}.book-crumbs-meta{color:var(--secondary);font-size:var(--fs-meta);white-space:nowrap}.book-toolbar .book-admin-actions{flex:none;display:flex;align-items:center;gap:8px;width:auto}.book-hero{padding:20px;gap:12px 24px}.book-hero-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.book-hero-id{min-width:0;display:grid;gap:4px}.book-hero-row .book-modeseg{flex:none}.book-hero-row .book-modeseg button{min-height:36px;padding:0 10px;font-size:13px}.book-hero h1{font-size:clamp(26px,3vw,32px)}.book-hero-more{min-height:32px;padding:0;background:none;border:0;box-shadow:none;font-size:13px;position:relative}.book-hero-more:after{content:"";position:absolute;inset:-6px -8px}.book-hero.is-compact{padding:12px 16px}.book-hero.is-compact h1{font-size:22px}.book-hero.is-compact .book-hero-main{gap:0}.book-note .rich-text{max-width:70ch;font-size:17px;line-height:1.55}.book-note .rt-table-wrap{max-width:100%;overflow-x:auto}@media(max-width:900px){.book-toolbar{position:sticky;top:0;flex-wrap:nowrap}.book-toolbar .breadcrumbs{flex:1 1 auto}.book-crumbs-meta{display:none}.book-toolbar .book-admin-actions .button.primary{padding:0 12px}.book-hero{padding:16px}.book-hero-row{flex-direction:column;align-items:stretch}.book-hero-row .book-modeseg{align-self:flex-start}}.rich-text{display:grid;gap:8px}.rich-text .rt-p{margin:0}.rich-text .rt-label{font-weight:700}.rich-text .rt-list{margin:0;padding-left:20px}.rt-table-wrap{overflow-x:auto;max-width:100%;border-radius:8px}.rt-table{border-collapse:collapse;width:100%;background:var(--surface);font-size:15px}.rt-table th,.rt-table td{padding:8px 12px;border:1px solid var(--hairline);text-align:left;vertical-align:top}.rt-table th{font-weight:700;white-space:nowrap}.book-hero-row{flex-wrap:wrap}.book-hero-id{flex:1 1 240px}.book-task{padding:20px}.book-task-head{margin-bottom:12px}.book-kind{width:40px;height:40px}.book-task-instr{margin-bottom:12px}.book-ex .bx,.book-ex .bx-task{gap:12px}.book-ex .ex-foot{gap:0;margin-top:12px}.book-ex .ex-row{min-height:44px;gap:8px 12px}.book-ex .ex-btn{min-height:44px}.book-ex .ex-strip:empty{min-height:0;padding:0;border:0}.book-ex .ex-strip:not(:empty){margin-top:12px}.book-ex .options .tile.option{min-height:52px}.book-ex .options{gap:12px}@media(max-width:700px){.book-task{padding:16px}}:root{interpolate-size:allow-keywords}.collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .2s ease-out,opacity .2s ease-out}.collapse.is-open{grid-template-rows:1fr;opacity:1}.collapse-in{min-height:0;overflow:hidden}.collapse.is-settled>.collapse-in{overflow:visible}.book-tree details::details-content,.rs-fold::details-content{block-size:0;overflow:clip;opacity:0;transition:block-size .2s ease-out,opacity .2s ease-out,content-visibility .2s allow-discrete}.book-tree details[open]::details-content,.rs-fold[open]::details-content{block-size:auto;opacity:1}.chev{transition:transform .2s ease-out}@media(prefers-reduced-motion:reduce){.collapse,.book-tree details::details-content,.rs-fold::details-content,.chev{transition:none!important}}.book-tree nav{scrollbar-width:none;scrollbar-gutter:auto;padding:12px 8px 20px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 20px),transparent 100%)}.book-tree nav::-webkit-scrollbar{display:none}.book-tree .book-block{margin:0}.book-tree .book-block+.book-block{margin-top:16px;padding-top:8px;border-top:1px solid var(--hairline)}.book-tree .book-block>summary{min-height:36px;padding:0 8px 0 12px;border-radius:8px;color:var(--text);font-size:14px;font-weight:600;letter-spacing:.02em;transition:background-color .14s,color .14s}.book-tree .book-block>summary:hover{background:var(--page)}.book-tree .book-block.has-here>summary{background:none;color:var(--text)}.book-tree .book-block-meta{color:var(--secondary);font-size:12px;font-weight:400;letter-spacing:0}.book-tree .book-row{display:grid;grid-template-columns:minmax(0,1fr) 28px;column-gap:8px;align-items:start;min-height:0;margin:0;padding:6px 8px 6px 12px;border-radius:8px;color:var(--text);font-size:14px;font-weight:400;line-height:18px;transition:background-color .14s,color .14s}.book-tree .book-row:hover:not(.is-locked){background:var(--page)}.book-tree .book-row:focus-visible,.book-tree .book-block>summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.book-tree .book-row-main{display:block;min-width:0}.book-tree .book-row-main.has-n{display:grid;grid-template-columns:var(--nw, auto) minmax(0,1fr);column-gap:8px}.book-tree .book-row-n{width:auto;padding:0;color:var(--secondary);font-size:13px;font-weight:400;line-height:18px;white-space:nowrap;font-variant-numeric:tabular-nums}.book-tree .book-row-t{display:block;padding:0;line-height:18px;overflow-wrap:break-word}.book-tree .book-row.is-stub{color:var(--secondary)}.book-tree .book-slot{display:grid;place-items:center;width:28px;height:18px}.book-tree .book-row.is-locked{grid-template-columns:minmax(0,1fr) 20px}.book-lrow{position:relative;margin:2px 0}.book-lrow-line{display:block}.book-lrow-who{display:none}.book-lrow-menu{position:absolute;top:3px;right:8px;width:28px;height:24px;opacity:0;pointer-events:none;transition:opacity .14s}.book-lrow-menu .more-button{width:28px;min-width:28px;height:24px;min-height:24px;padding:0;opacity:1!important}.book-lrow:hover .book-lrow-menu,.book-lrow:focus-within .book-lrow-menu,.book-lrow:has(.is-active) .book-lrow-menu{opacity:1;pointer-events:auto}.book-lrow:hover .book-slot,.book-lrow:focus-within .book-slot,.book-lrow:has(.is-active) .book-slot{opacity:0}.book-lrow:has(.book-row.is-active){background:var(--course-soft);box-shadow:inset 2px 0 0 var(--course)}.book-lrow:has(.book-row.is-active):hover{background:var(--course-soft)}.book-tree .book-row.is-active{background:none;color:var(--text);font-weight:600}.book-tree .book-row.is-active .book-row-n{color:var(--secondary);font-weight:400}.book-tree .book-lrow-sub{margin:0;padding:0 8px 8px 12px}.book-tree .book-lrow-meta{font-size:12px;line-height:16px}.book-block>.book-row:not(.is-locked),.book-block>.book-lrow,.book-block>.collapse{margin-top:2px}.book-tree .book-toc{position:relative;margin:4px 0 8px 12px;padding:0;border:0}.book-tree .book-toc:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--hairline)}.book-toc-sec+.book-toc-sec{margin-top:4px}.book-tree .book-toc .book-row{border-radius:0 8px 8px 0;padding-left:12px}.book-tree .book-row.is-spy{background:none;box-shadow:inset 2px 0 0 var(--course);color:var(--text)}.book-tree .book-row.is-spy .book-row-t{font-weight:600}.book-tree .book-sec-row{display:flex;align-items:flex-start;margin:0}.book-tree .book-row.is-sec{flex:1;min-width:0;grid-template-columns:minmax(0,1fr);padding:6px 4px 6px 12px;min-height:0}.book-tree .book-row.is-sec .book-row-t{color:var(--text);font-size:13px;font-weight:500;line-height:18px}.book-tree .book-row.is-sec.is-spy .book-row-t{font-weight:600}.book-tree .book-row.is-sec.is-stub .book-row-t,.book-tree .book-row.is-sec.is-stub .book-row-sub{color:var(--secondary);font-weight:400}.book-tree .book-row-sub{display:block;font-size:12px;font-weight:400;line-height:16px;color:var(--secondary)}.book-tree .book-sec-toggle{flex:none;width:28px;height:30px;margin:0 8px 0 0}.book-tree .book-sec-toggle:after{inset:-4px -4px -4px -8px}.book-tree .book-row.is-task{grid-template-columns:18px 20px minmax(0,1fr);column-gap:8px;align-items:start;padding-left:24px;font-size:13px}.book-tree .book-row.is-task .book-dot{margin:0}.book-tree .book-row.is-task .book-row-n{width:20px;text-align:right;font-size:12px}.book-tree .book-row.is-part{grid-template-columns:16px minmax(0,1fr) 28px;column-gap:8px;padding-left:12px;font-size:13px}.book-tree .book-part-ico{width:16px;height:18px;align-items:center}.book-tree .book-part-ico svg{width:16px;height:16px}.book-tree .book-row-count{justify-self:end;width:auto;margin:0;font-size:12px;font-weight:400;color:var(--secondary);font-variant-numeric:tabular-nums}.book-toc-sec+.book-row.is-part{margin-top:4px}.book-tree .book-resume-dot{display:inline-block;vertical-align:middle;margin-left:6px}.book-hero{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:20px 24px}.book-hero:before{display:none}.book-hero .book-hero-row{display:flex;flex-wrap:nowrap;align-items:flex-start;justify-content:space-between;gap:16px}.book-hero .book-hero-id{flex:1 1 auto;min-width:0}.book-hero .book-hero-more{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0;border:0;border-radius:4px;background:none;box-shadow:none;color:var(--accent-ink);font-size:14px;font-weight:600;text-decoration:none;transition:color .14s}.book-hero .book-hero-more:hover:not(:disabled){background:none;text-decoration:underline;text-underline-offset:3px}.book-hero .book-hero-more .chev{width:7px;height:7px;margin:0 0 1px 2px}.book-hero-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:8px 0 4px}.book-hero-grid .book-hero-art .bx-image{aspect-ratio:auto;height:180px;object-fit:contain}.book-hero-grid .book-sticker{align-self:stretch;margin:0}.book-hero-grid .book-cando{margin:0}.book-hero.is-compact{padding:12px 20px;gap:0}@media(max-width:900px){.book-hero{padding:16px}.book-hero .book-hero-row{flex-direction:column;align-items:stretch;gap:8px}.book-hero .book-modeseg{align-self:flex-start}.book-hero-grid{grid-template-columns:minmax(0,1fr);gap:8px}.book-hero-grid .book-hero-art .bx-image{height:min(180px,56.25vw)}.book-sticker-body{display:grid;grid-template-rows:0fr;margin-top:8px;padding:0 16px;background:var(--c-amber-soft);border-radius:var(--radius-control);transition:grid-template-rows .2s ease-out,padding .2s ease-out}.book-sticker.is-open .book-sticker-body{display:grid;grid-template-rows:1fr;padding:12px 16px}.book-sticker-in{min-height:0;overflow:hidden}}.book-tree .book-lrow .book-row{padding-right:4px}.book-lrow-menu{right:4px}.book-tree .book-row-main.has-n{column-gap:6px}.book-tree .book-row-main.has-n .book-row-n{text-align:right}.book-hero-grid>*{grid-area:auto;min-width:0}.book-hero-grid>.book-theme,.book-hero-grid>.book-hero-art,.book-hero-grid>.book-cando:last-child{grid-column:1 / -1}.book{--bar: 52px;--stick: calc(var(--app-top) + var(--bar))}.book-toolbar{position:sticky;top:var(--app-top);z-index:15;margin:0 -8px;padding:4px 8px;box-sizing:border-box;min-height:var(--bar);background:var(--page)}.book-tree{top:calc(var(--app-top) + var(--bar) + 8px);max-height:calc(100dvh - var(--app-top) - var(--bar) - 24px)}.book-screen{margin:0;display:grid;gap:8px}.book-screen img{display:block;width:100%;height:auto;border:1px solid var(--hairline);border-radius:var(--radius-card);background:#fff}.book-screen figcaption{color:var(--secondary);font-size:var(--fs-meta)}.book-unit{position:relative}.book-unit-menu{position:absolute;z-index:1;top:-4px;right:28px}.book-block.has-menu>summary .book-block-meta{margin-right:40px}.book-unit-menu .row-menu-trigger{min-width:44px;min-height:44px;padding:0;border-color:transparent;background:transparent;box-shadow:none;color:var(--secondary)}@media(max-width:1099px){.book{--bar: 56px}}@media(max-width:900px){.book{--bar: 52px;--stick: calc(var(--app-top) + var(--bar) + 44px)}.book-toolbar{position:sticky;top:var(--app-top);margin:0 -4px;padding:4px}.book-crumbs,.book-toolbar .crumbs-bar{min-width:0;flex:1 1 auto;flex-wrap:nowrap}.book-toolbar .crumbs-bar{height:44px;gap:0;align-items:center}.book-toolbar .breadcrumbs{height:44px;margin:0}.book-toolbar{gap:4px}.book-toolbar .crumb-back{padding:0 4px 0 0}.book-toolbar .crumb-back svg{width:18px;height:18px}.book-toolbar .breadcrumbs li+li:before{margin-right:2px}.book-toolbar .book-admin-actions{gap:4px}.book-toolbar .breadcrumbs{min-width:0;flex:1 1 auto}.book-toolbar .breadcrumbs ol{flex-wrap:nowrap;margin:0}.book-toolbar .breadcrumbs li{white-space:nowrap}.book-toolbar .breadcrumbs li:last-child{overflow:hidden;text-overflow:ellipsis;display:block;line-height:44px}.book-pill{top:calc(var(--app-top) + var(--bar));margin:0 0 8px;border-radius:0 0 var(--radius-control) var(--radius-control)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.book-unit+.book-unit,.book-unit+.book-block,.book-block+.book-unit{margin-top:8px}.book-tree .book-unit+.book-unit,.book-tree .book-unit+.book-block,.book-tree .book-block+.book-unit{margin-top:16px;padding-top:8px;border-top:1px solid var(--hairline)}.learn-page{max-width:1040px;margin:0 auto}.learn-page h1{margin:0}.learn-lead,.learn-sub,.learn-meta{margin:0;color:var(--secondary);font-size:var(--fs-meta)}.learn-lead{margin-top:6px;font-size:var(--fs-body);max-width:60ch}.learn-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.learn-mixed{display:grid;justify-items:end;gap:4px}.learn-mixed small{color:var(--secondary);font-size:var(--fs-label)}.learn-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px}.learn-search{position:relative;display:flex;align-items:center;flex:1 1 280px;min-width:0}.learn-search svg{position:absolute;left:14px;width:20px;height:20px;color:var(--secondary);pointer-events:none}.learn-search input{width:100%;min-height:44px;padding:8px 14px 8px 42px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);font-size:var(--fs-body)}.learn-search input:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.learn-levels{display:flex;flex-wrap:wrap;gap:8px}.learn-chip{min-height:44px;min-width:52px;padding:8px 16px;border:1px solid var(--hairline);border-radius:999px;background:var(--surface);color:var(--text);font-size:var(--fs-meta);font-weight:600;cursor:pointer}.learn-chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.learn-chip:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.learn-continue{display:grid;gap:2px;margin-bottom:24px;padding:16px 20px;border:1px solid var(--hairline);border-left:6px solid var(--accent);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--edge);color:var(--text);text-decoration:none}.learn-continue-label{font-size:var(--fs-label);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--secondary)}.learn-continue strong{font-size:var(--fs-h2);overflow-wrap:anywhere}.learn-continue:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.learn-section{margin-top:32px}.learn-section>h2{margin:0 0 12px}.learn-group{margin-top:16px}.learn-group h3{margin:0 0 10px;font-size:var(--fs-body);font-weight:600;color:var(--secondary)}.learn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:16px}.learn-card{position:relative;display:flex;flex-direction:column;gap:4px;padding:16px 18px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge);transition:border-color .15s}.learn-card h3,.learn-card h4{margin:0;font-size:var(--fs-h2);font-weight:700;line-height:1.25;overflow-wrap:anywhere}.learn-card a,.learn-row a{color:var(--text);text-decoration:none}.learn-card a:after,.learn-row a:after{content:"";position:absolute;inset:0;border-radius:inherit}.learn-card:focus-within,.learn-row:focus-within{outline:3px solid var(--accent);outline-offset:2px}.learn-card:hover,.learn-row:hover{border-color:var(--accent)}.learn-card-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px}.learn-wide{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.learn-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.learn-row{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;min-height:56px;padding:10px 18px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.learn-row h3{flex:1 1 200px;margin:0;font-size:var(--fs-body);font-weight:700}.learn-level-a1{background:var(--c-green-soft);color:var(--c-green-ink)}.learn-level-a2{background:var(--c-blue-soft);color:var(--c-blue-ink)}.learn-level-b1{background:var(--c-violet-soft);color:var(--c-violet-ink)}.learn-status{padding:4px 10px;border-radius:var(--radius-chip);font-size:var(--fs-label);font-weight:600}.learn-status.is-new{background:var(--c-blue-soft);color:var(--c-blue-ink)}.learn-status.is-open,.learn-status.is-mid{background:var(--c-amber-soft);color:var(--c-amber-ink)}.learn-status.is-good{background:var(--c-green-soft);color:var(--c-green-ink)}.learn-empty{color:var(--secondary)}.learn-results{display:grid;gap:8px;margin:0;padding:0;list-style:none}.learn-results a{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;min-height:52px;padding:10px 16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-control);color:var(--text);text-decoration:none}.learn-results a:hover{border-color:var(--accent)}.learn-results a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.learn-type{min-width:88px;font-size:var(--fs-label);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--secondary)}.learn-result-title{font-weight:700}.learn-results .learn-sub{flex:1}.learn-topic-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px;margin:8px 0 24px}.learn-title-tr{margin:4px 0 0;font-size:var(--fs-h2);color:var(--secondary)}.learn-topic-summary{margin:10px 0 0;max-width:62ch;line-height:1.5}.learn-topic-actions{display:flex;flex-wrap:wrap;gap:8px}.learn-notice{padding:10px 16px;border-radius:var(--radius-control);background:var(--c-green-soft);color:var(--c-green-ink);font-weight:600}.learn-rule,.learn-mistakes{margin-top:16px;padding:20px 24px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.learn-rule h2,.learn-mistakes h2{margin:0 0 8px}.learn-body{margin:0;line-height:1.55;max-width:66ch}.learn-body strong{color:var(--accent-ink)}.learn-table-wrap{max-width:100%;margin-top:14px;overflow-x:auto;border:1px solid var(--hairline);border-radius:var(--radius-control)}.learn-table-wrap:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.learn-table{width:100%;min-width:440px;border-collapse:collapse;font-size:var(--fs-body)}.learn-table th,.learn-table td{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--hairline)}.learn-table thead th{background:var(--page);font-size:var(--fs-meta);font-weight:600;color:var(--secondary)}.learn-table tbody th{font-weight:600;white-space:nowrap}.learn-table tr:last-child th,.learn-table tr:last-child td{border-bottom:0}.learn-examples{display:grid;gap:4px;margin:14px 0 0;padding:0;list-style:none}.learn-examples li{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;column-gap:4px}.learn-speak{grid-row:span 2;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--accent-ink);cursor:pointer}.learn-speak:hover{background:var(--accent-soft)}.learn-speak:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.learn-speak svg{width:22px;height:22px}.learn-ex-en{font-weight:600;font-size:var(--fs-body);overflow-wrap:anywhere}.learn-ex-tr{color:var(--secondary);font-size:var(--fs-meta);overflow-wrap:anywhere}.learn-mistakes ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px;margin:12px 0 0;padding:0;list-style:none}.learn-mistake{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--page)}.learn-mistake p{margin:0;overflow-wrap:anywhere}.learn-wrong del{padding:2px 8px;border-radius:8px;background:var(--c-rose-soft);color:var(--c-rose-ink);text-decoration-thickness:2px}.learn-right span:not(.sr-only){padding:2px 8px;border-radius:8px;background:var(--c-green-soft);color:var(--c-green-ink);font-weight:600}.learn-why{color:var(--secondary);font-size:var(--fs-meta)}.learn-pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.learn-pager a{display:grid;gap:2px;min-height:56px;padding:10px 16px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);text-decoration:none;font-weight:600}.learn-pager a.is-next{text-align:right}.learn-pager small{font-size:var(--fs-label);font-weight:500;color:var(--secondary)}.learn-pager a:hover{border-color:var(--accent)}.learn-pager a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.learn-empty-page{display:grid;justify-items:start;gap:12px;padding:24px 0}.learn-empty-page h1{margin:0}.learn-empty-page p{margin:0;color:var(--secondary)}.learn-tabs{display:inline-flex;gap:8px;margin-bottom:16px}.learn-tab{min-height:44px;padding:8px 24px;border:1px solid var(--hairline);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-body);font-weight:600;cursor:pointer}.learn-tab[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.learn-tab:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.learn-tests{display:grid;gap:8px;margin:0;padding:0;list-style:none}.learn-test{display:grid;grid-template-columns:minmax(0,1fr) 48px 168px 112px 96px;align-items:center;gap:8px 24px;min-height:64px;padding:8px 16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.learn-test-main{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}.learn-test-main strong{font-size:var(--fs-body)}.learn-test-meta{display:contents}.learn-test-meta .learn-status{justify-self:start}.learn-test-go{min-width:96px;min-height:44px;justify-content:center;color:var(--accent-ink);font-weight:600;text-decoration:none}.learn-empty-box{display:grid;justify-items:start;gap:16px;padding:24px;border:1px dashed var(--hairline);border-radius:var(--radius-card)}.learn-empty-box p{margin:0;color:var(--secondary)}.tc{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;padding:16px 24px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.learn-page .tc{margin:0 0 24px}.learn-page .tc-end{margin:24px 0 0}.tc-text{display:grid;gap:2px;min-width:0}.tc-text strong,.tc-text h2{margin:0;font-size:var(--fs-h2);font-weight:700;line-height:1.25}.tc-text p{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin:0;color:var(--secondary);font-size:var(--fs-body)}.tc-best{padding:4px 8px;border-radius:999px;background:var(--c-green-soft);color:var(--c-green-ink);font-size:var(--fs-label);font-weight:600}.tc .button.primary{min-width:160px;min-height:48px;justify-content:center;font-size:var(--fs-body);font-weight:600;color:#fff;text-decoration:none}.tc .button.primary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}main:has(.qz){max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:var(--surface);min-height:100vh}.lp.qz{max-width:none;margin:0;padding:0 0 168px}.qz-top{position:sticky;top:0;z-index:25;background:var(--surface);border-bottom:1px solid var(--hairline)}.qz-top-in{display:grid;grid-template-columns:48px minmax(0,180px) minmax(0,1fr) auto;align-items:center;gap:16px;max-width:768px;margin:0 auto;padding:8px 24px}.qz-close{color:var(--secondary);cursor:pointer;background:none;border:0;padding:0}button.qz-close:hover{background:var(--page);color:var(--text)}button.qz-close:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.qz-title{margin:0;overflow:hidden;font-size:var(--fs-body);font-weight:700;letter-spacing:0;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.qz .learn-bar{height:12px;border-radius:999px;background:var(--track);overflow:hidden}.qz .learn-bar>span{display:block;height:100%;border-radius:999px;background:var(--accent)}.qz-tags{display:flex;flex-wrap:wrap;gap:8px;max-width:720px;margin:16px auto 0;padding:0 24px}.qz-tag{padding:4px 10px;border-radius:999px;background:var(--c-amber-soft);color:var(--c-amber-ink);font-size:var(--fs-label);font-weight:600}.qz-body{width:100%;max-width:720px;margin:0 auto;padding:32px 24px 0}.qz-tags+.qz-body{padding-top:16px}.qz-kind{margin:0 0 8px;color:var(--secondary);font-size:var(--fs-label);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.qz .lp-answer{margin:0}.qz .lp-answer .stimulus,.qz .lp-answer .gap-sentence{margin:0 0 24px;font-size:26px;font-weight:700;line-height:1.4}.qz .gap-sentence input{width:min(10em,100%);margin:0 8px;font-weight:600}.qz .options{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px}.qz .options .tile{justify-content:flex-start;min-height:64px;padding:12px 16px;text-align:left}.qz .options .tile .tile-text{flex:1;text-align:left;overflow-wrap:anywhere}.qz .tile:disabled:not(.is-correct):not(.is-wrong):not(.placed){background:var(--page);border-color:var(--hairline);box-shadow:none;color:var(--secondary)}.qz .tile-bank{justify-content:flex-start;margin-top:24px}.qz .tile-line{min-height:72px}.qz-bar .lp-bar-inner{max-width:720px}.qz .lp-bar .button.primary{min-width:200px}.qz .lp-bar .button.primary:disabled{background:var(--track);border-color:var(--track);color:var(--secondary);box-shadow:none;opacity:1;cursor:not-allowed}.qz .lp-bar-actions{margin-left:auto}.qz .lp-bar:not(.is-good):not(.is-bad) .lp-feedback{display:none}.qz .lp-feedback>div{min-width:0}.qz .learn-explain{display:block;font-size:var(--fs-body);font-weight:500;overflow-wrap:anywhere}.qz .gap-sentence input.is-correct{border-color:var(--c-green)}.qz-note{margin:0;color:var(--secondary);font-size:var(--fs-body)}.qz-result{padding-top:48px}.qz-result .lp-finish{gap:16px}.qz-result .lp-missed{width:100%;text-align:left}.learn-score{margin:0;font-size:var(--fs-h2);color:var(--secondary)}.learn-score strong{font-size:32px;color:var(--text);font-variant-numeric:tabular-nums}.learn-stars{display:flex;gap:8px;margin:0;color:var(--lp-tile-border, #D6CEC1)}.learn-stars span{display:grid;place-items:center}.learn-stars svg{width:44px;height:44px}.learn-stars .is-on{color:var(--c-amber-ink)}.learn-stars .is-on svg path{fill:var(--c-amber-soft)}.qz .lp-test{display:block}.qz .lp-test-word{margin:0 0 24px}.qz .lp-test-fields{margin-bottom:8px}.qz .lp-verdict{min-height:0;padding:0;background:none}.qz .lp-verdict strong{display:block;font-size:20px}@media(prefers-reduced-motion:no-preference){.qz .learn-bar>span{transition:width .3s ease}.learn-stars .is-on{animation:learn-pop .35s var(--ease-spring) both}.learn-stars .is-on:nth-child(2){animation-delay:.1s}.learn-stars .is-on:nth-child(3){animation-delay:.2s}@keyframes learn-pop{0%{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}}@media(max-width:900px){.shell:has(.qz){padding-top:0}.shell:has(.qz) .workspace>header{display:none}}@media(max-width:760px){.learn-test{grid-template-columns:minmax(0,1fr) auto}.learn-test-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;grid-column:1 / -1;grid-row:2}}@media(max-width:640px){.qz .options{grid-template-columns:1fr;gap:8px}.qz .lp-answer .stimulus,.qz .lp-answer .gap-sentence{font-size:22px}}@media(max-width:600px){.learn-mixed{justify-items:start}.learn-grid{grid-template-columns:1fr}.learn-rule,.learn-mistakes{padding:16px}.learn-pager{grid-template-columns:1fr}.learn-pager a.is-next{text-align:left}.learn-stars svg{width:36px;height:36px}.qz-top-in{grid-template-columns:48px minmax(0,1fr) auto;grid-template-areas:"close title count" "bar bar bar";gap:0 8px;padding:8px 16px}.qz-top-in>.qz-close{grid-area:close}.qz-top-in>.qz-title{grid-area:title}.qz-top-in>.learn-bar{grid-area:bar;margin:0 0 8px}.qz-top-in>.lp-count{grid-area:count}.qz-body,.qz-tags{padding-left:16px;padding-right:16px}.qz-body{padding-top:24px}.qz .lp-bar-actions{flex:1}.qz .lp-bar .button.primary{min-width:0;width:100%}.tc{padding:16px}.tc .button.primary{width:100%}}.learn-today{margin-top:16px;padding:16px 20px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.learn-today-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.learn-today-head h2{margin:0}.learn-today-list{display:grid;gap:4px;margin:8px 0 0;padding:0;list-style:none}.learn-today-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:48px;padding:4px 0;border-top:1px solid var(--hairline)}.learn-today-list li:first-child{border-top:0}.learn-today-label{flex:0 0 150px;font-size:var(--fs-label);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--secondary)}.learn-today-list a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:var(--accent-ink)}.learn-today-verb{font-weight:700}.learn-today-list .learn-speak{grid-row:auto;margin-left:auto}@media(max-width:600px){.learn-today-label{flex-basis:100%}.learn-today-list .learn-speak{margin-left:0}}.lp-page{display:grid;gap:20px;max-width:1040px;margin:0 auto;min-width:0}.lp-page h1{margin:0}.lp-page h2{margin:0 0 12px}.lp-page .breadcrumbs{margin:0}.lp-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;padding:24px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.lp-hero>div:first-child{min-width:0}.lp-lead{margin:6px 0 0;color:var(--secondary);font-size:var(--fs-body);line-height:1.45}.lp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:8px 0 0;color:var(--secondary);font-size:var(--fs-body);font-weight:600}.lp-level{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-chip);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-label);font-weight:700;letter-spacing:.04em}.lp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.lp-page .button{min-height:48px;padding:10px 20px;font-size:var(--fs-body);font-weight:600;text-decoration:none;color:var(--text)}.lp-page .button.primary{color:#fff}.lp-page .button.quiet{color:var(--accent-ink)}.lp-page .button:disabled{opacity:.55;cursor:not-allowed}.lp-page .button:focus-visible,.lp-chip:focus-visible,.lp-icon-btn:focus-visible,.lp-known:focus-visible,.lp-flash:focus-visible,.lp-gloss:focus-visible,.lp-reveal:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.lp-filters{display:grid;gap:12px}.lp-search{position:relative}.lp-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--secondary);pointer-events:none}.lp-search input{width:100%;min-height:48px;padding-left:46px}.lp-chips{display:flex;flex-wrap:wrap;gap:8px}.lp-chip{min-height:44px;padding:8px 16px;border:1px solid var(--hairline);border-radius:var(--radius-chip);background:var(--surface);box-shadow:var(--edge);color:var(--text);font:inherit;font-size:var(--fs-body);font-weight:600;cursor:pointer}.lp-chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 0 var(--accent-edge)}.lp-size{display:flex;gap:8px}.lp-size .lp-chip{min-width:52px;padding:8px 12px}.lp-pattern-note{margin:0;padding:10px 14px;border-radius:var(--radius-control);background:var(--c-amber-soft);color:var(--c-amber-ink);font-size:var(--fs-body);font-weight:500}.lp-listbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.lp-listbar .lp-lead{margin:0}.lp-tally{margin:0;color:var(--secondary);font-size:var(--fs-body);font-weight:600}.lp-toast{margin:0;padding:12px 16px;border-radius:var(--radius-control);background:var(--c-green-soft);color:var(--c-green-ink);font-size:var(--fs-body);font-weight:600}.lp-toast a{color:var(--c-green-ink);text-decoration:underline}.lp-empty{padding:24px 0;text-align:center}.lp-icon-btn{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-control);background:var(--accent-soft);color:var(--accent-ink);cursor:pointer}.lp-icon-btn:hover{background:#d6e8fb}.lp-known{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 14px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--edge);color:var(--text);font:inherit;font-size:var(--fs-body);font-weight:600;cursor:pointer}.lp-known svg{width:20px;height:20px}.lp-known.is-on{background:var(--c-green-soft);border-color:var(--c-green);color:var(--c-green-ink)}.lp-table-wrap{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);overflow-x:auto}.lp-table{width:100%;border-collapse:collapse}.lp-table th{padding:12px 16px;border-bottom:1px solid var(--hairline);color:var(--secondary);font-size:var(--fs-label);font-weight:700;letter-spacing:.06em;text-align:left;text-transform:uppercase}.lp-table td{padding:12px 16px;border-bottom:1px solid var(--hairline);vertical-align:middle;font-size:var(--fs-body)}.lp-table tr:last-child td{border-bottom:0}.lp-verb-row.is-known{background:var(--c-green-soft)}.lp-c-base strong{display:block;font-size:18px}.lp-c-base small{display:block;margin-top:2px;color:var(--secondary);font-size:var(--fs-meta)}.lp-c-tr .lp-level-wrap{margin-right:8px}.lp-c-act{white-space:nowrap;text-align:right}.lp-c-act>*{vertical-align:middle}.lp-c-act>*+*{margin-left:8px}.lp-words{display:grid;gap:8px;margin:0;padding:0;list-style:none}.lp-word{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;align-items:center;gap:16px;padding:10px 14px;background:var(--surface);border:1px solid var(--hairline);border-radius:16px}.lp-word.is-known{background:var(--c-green-soft)}.lp-word-compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.lp-word-main strong{display:block;font-size:18px}.lp-word-main small{display:block;margin-top:2px;color:var(--secondary);font-size:var(--fs-meta)}.lp-word-tr{font-size:var(--fs-body);font-weight:500;min-width:0;overflow-wrap:anywhere}.lp-word-act{display:flex;align-items:center;gap:8px}.lp-reveal{min-height:44px;min-width:96px;padding:6px 14px;border:1px dashed var(--accent);border-radius:var(--radius-control);background:var(--accent-soft);color:var(--accent-ink);font:inherit;font-size:var(--fs-body);font-weight:600;cursor:pointer}.lp-trainer{display:grid;gap:16px;width:100%;max-width:680px;margin:0 auto;padding:24px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.lp-trainer h2{margin:0}.lp-trainer:focus-visible,.lp-trainer h2:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lp-trainer-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.lp-flash{display:grid;align-content:center;justify-items:center;gap:10px;width:100%;min-height:240px;padding:24px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--c-blue-soft);box-shadow:var(--edge-strong);color:var(--text);font:inherit;text-align:center;cursor:pointer}.lp-flash.is-flipped{background:var(--c-green-soft)}.lp-flash-word{font-size:clamp(36px,9vw,56px);font-weight:700;line-height:1.1}.lp-flash-forms{max-width:100%;font-size:clamp(24px,6vw,40px);font-weight:700;line-height:1.2;overflow-wrap:anywhere}.lp-flash-sub{font-size:20px;color:var(--secondary)}.lp-flash-hint{font-size:var(--fs-meta);font-weight:600;color:var(--accent-ink)}.lp-test{display:grid;gap:14px}.lp-test-ask,.lp-retry{margin:0;color:var(--secondary);font-size:var(--fs-body)}.lp-retry{padding:8px 12px;border-radius:var(--radius-control);background:var(--c-amber-soft);color:var(--c-amber-ink);font-weight:600}.lp-test-word{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0}.lp-test-base{font-size:clamp(32px,8vw,44px);line-height:1.1}.lp-test-word>span{font-size:20px;color:var(--secondary)}.lp-test-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lp-field{display:grid;gap:6px;margin:0;font-size:var(--fs-meta);font-weight:600;color:var(--secondary)}.lp-field input{width:100%;min-height:52px;font-size:20px}.lp-verdict{min-height:64px;padding:4px 0}.lp-verdict p{margin:0 0 4px;font-size:var(--fs-body)}.lp-verdict.is-right,.lp-verdict.is-wrong{padding:12px 16px;border-radius:var(--radius-control)}.lp-verdict.is-right{background:var(--c-green-soft);color:var(--c-green-ink);font-weight:600}.lp-verdict.is-wrong{background:var(--c-rose-soft);color:var(--c-rose-ink);font-weight:600}.lp-verdict .lp-lead{margin:0;color:inherit;font-weight:400}.lp-score{margin:0;font-size:40px;font-weight:700}.lp-score strong{color:var(--accent-ink)}.lp-missed{display:grid;gap:6px;margin:0;padding:0;list-style:none}.lp-missed li{padding:10px 14px;border-radius:var(--radius-control);background:var(--page)}.lp-missed span{margin-left:8px;color:var(--secondary)}.lp-again{color:var(--c-coral-ink)}.lp-text{max-width:68ch;padding:24px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);font-size:18px;line-height:1.6}.lp-text.is-large{font-size:23px}.lp-text p{margin:0 0 1em}.lp-text p:last-child{margin-bottom:0}.lp-text .lp-text-hint{font-size:var(--fs-meta);margin:0 0 16px}.lp-gloss-wrap{position:relative}.lp-gloss{padding:0;border:0;border-bottom:2px dotted var(--accent-ink);background:none;color:var(--accent-ink);font:inherit;line-height:inherit;cursor:pointer}.lp-gloss[aria-expanded=true]{background:var(--accent-soft)}.lp-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:30;display:flex;align-items:center;gap:8px;width:max-content;max-width:min(320px,calc(100vw - 32px));padding:8px 8px 8px 14px;background:var(--surface);border:1px solid var(--hairline);border-radius:14px;box-shadow:var(--edge-strong);color:var(--text);font-size:16px;line-height:1.3;font-weight:400;text-align:left;white-space:normal}.lp-pop:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lp-pop-text{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}.lp-section{display:grid;gap:4px;max-width:68ch}.lp-prevnext{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}.lp-prevnext .button{max-width:100%;text-align:left}@media(max-width:760px){.lp-hero{padding:16px}.lp-table-wrap{background:none;border:0;overflow:visible}.lp-table,.lp-table tbody{display:block}.lp-table thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}.lp-verb-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin-bottom:10px;padding:14px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card)}.lp-verb-row.is-known{background:var(--c-green-soft)}.lp-table .lp-verb-row td{display:block;padding:0;border:0}.lp-table td[data-label]:before{content:attr(data-label);display:block;color:var(--secondary);font-size:var(--fs-label);font-weight:600}.lp-c-base,.lp-c-tr,.lp-c-act{grid-column:1 / -1}.lp-c-act{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px;margin-top:4px;text-align:left}.lp-c-act>*+*{margin-left:0}.lp-word,.lp-word-compact{grid-template-columns:minmax(0,1fr) auto}.lp-word-tr{grid-column:1 / -1;grid-row:2}.lp-trainer{padding:16px}.lp-test-fields{grid-template-columns:1fr}.lp-text{padding:16px}.lp-actions .button{flex:1 1 auto}}@media(prefers-reduced-motion:no-preference){.lp-flash{animation:lp-pop .25s var(--ease-spring)}.lp-pop{animation:lp-pop .15s ease-out}@keyframes lp-pop{0%{transform:scale(.96);opacity:.6}to{transform:none;opacity:1}}}.gm-page{display:grid;gap:24px;max-width:1040px;margin:0 auto;min-width:0}.gm-page h1,.gm-page h2{margin:0}.gm-page .button{min-height:48px;padding:10px 20px;font-size:var(--fs-body);font-weight:600;text-decoration:none;color:var(--text)}.gm-page .button.primary{color:#fff}.gm-page .button.quiet{color:var(--accent-ink)}.gm-page .button:disabled{opacity:.55;cursor:not-allowed}.gm-page button:focus-visible,.gm-page a:focus-visible,.gm-page input:focus-visible,.gm-page select:focus-visible,.gm-page summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.gm-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.gm-lead,.gm-help{margin:0;color:var(--secondary);font-size:var(--fs-body);line-height:1.45;max-width:62ch}.gm-note{margin:0;padding:8px 16px;border-radius:var(--radius-control);background:var(--c-blue-soft);color:var(--c-blue-ink);font-size:var(--fs-body);font-weight:500}.gm-note.is-warn{background:var(--c-amber-soft);color:var(--c-amber-ink)}.gm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.gm-link{min-height:44px;padding:8px;border:0;background:none;color:var(--accent-ink);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.gm-change{margin:0}.gm-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.gm-back{display:inline-flex;align-items:center;min-height:44px;color:var(--accent-ink);font-weight:600;text-decoration:none}.gm-back:hover{text-decoration:underline}.gm-close{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--edge);color:var(--text)}.gm-close:hover{background:var(--page)}.gm-close svg{width:24px;height:24px}.gm-title{display:flex;align-items:center;gap:8px;margin:0;flex:1 1 auto;min-width:0;font-size:var(--fs-h2)}.gm-title-icon{display:inline-flex;color:var(--secondary)}.gm-source-chip{padding:4px 16px;border-radius:var(--radius-chip);background:var(--page);border:1px solid var(--hairline);color:var(--secondary);font-size:var(--fs-meta);font-weight:600;max-width:100%;overflow-wrap:anywhere}.gm-head{display:grid;gap:8px}.gm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:24px;margin:0;padding:0;list-style:none}.gm-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:24px;background:var(--surface);border:1px solid var(--hairline);border-radius:20px;box-shadow:var(--edge);min-width:0}.gm-card.is-team{grid-column:1 / -1;flex-direction:column}.gm-card h2{font-size:var(--fs-h2)}.gm-card-icon{display:inline-flex;padding:8px;border-radius:var(--radius-control);background:var(--page);color:var(--secondary)}.gm-card-desc{margin:0;color:var(--text);line-height:1.45}.gm-card-meta{margin:0;color:var(--secondary);font-size:var(--fs-meta)}.gm-card .gm-field{width:100%}.gm-play{margin-top:auto}.gm-field{display:grid;gap:4px;font-size:var(--fs-meta);color:var(--secondary);font-weight:600;min-width:0}.gm-field select,.gm-field input,.gm-form input{width:100%;min-height:48px;padding:8px 16px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-body);min-width:0}.gm-setup{display:grid;gap:16px;padding:24px;background:var(--surface);border:1px solid var(--hairline);border-radius:20px;max-width:640px;justify-items:start}.gm-setup .gm-field{width:100%}.gm-team-setup{max-width:880px;width:100%;box-sizing:border-box}.gm-group{display:grid;gap:8px;width:100%;margin:0;padding:0;border:0;min-width:0}.gm-group legend,.gm-group>h2{padding:0;font-size:var(--fs-body);font-weight:700;margin-bottom:8px}.gm-names{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px}.gm-group details{border-top:1px solid var(--hairline);padding:8px 0}.gm-group summary{min-height:44px;display:flex;align-items:center;font-weight:600;cursor:pointer}.gm-chips{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}.gm-chip{min-height:44px;padding:8px 16px;border:1px solid var(--hairline);border-radius:var(--radius-chip);background:var(--surface);box-shadow:var(--edge);color:var(--text);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer}.gm-chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.gm-board{display:grid;gap:16px;padding:24px;background:var(--surface);border:1px solid var(--hairline);border-radius:20px;min-width:0}.gm-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.gm-stat{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--secondary)}.gm-timer{font-size:var(--fs-h2);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.gm-progress,.gm-streak{margin:0;color:var(--secondary);font-size:var(--fs-meta);font-weight:600}.gm-live{margin:0;min-height:24px;color:var(--secondary);font-size:var(--fs-meta)}.gm-tiles{display:grid;gap:8px;margin:0;padding:0;list-style:none}.gm-match,.gm-memory{grid-template-columns:repeat(4,minmax(0,1fr))}.gm-tiles li{display:flex;min-width:0}.gm-tile,.gm-card-flip,.gm-letter,.gm-slot,.gm-option,.gm-num{font:inherit;cursor:pointer}.gm-tile{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px;width:100%;min-height:88px;padding:8px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--edge-strong);color:var(--text);font-size:var(--fs-body);font-weight:600;text-align:center;overflow-wrap:anywhere}.gm-tile.is-selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.gm-tile.is-wrong{border-color:var(--c-rose-ink);background:var(--c-rose-soft);color:var(--c-rose-ink)}.gm-tile.is-found,.gm-card-flip.is-found{border-color:var(--c-green-ink);background:var(--c-green-soft);color:var(--c-green-ink);box-shadow:none;opacity:1}.gm-tile:disabled{cursor:default}.gm-card-flip{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-height:96px;padding:8px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--page);box-shadow:var(--edge-strong);color:var(--secondary);text-align:center;font-size:var(--fs-h2);font-weight:700;overflow-wrap:anywhere}.gm-card-flip .gm-face{font-size:var(--fs-body);overflow-wrap:anywhere}.gm-card-flip[data-state=down] .gm-face{font-size:var(--fs-display)}.gm-card-flip.is-up{background:var(--surface);border-color:var(--accent);color:var(--accent-ink)}.gm-card-flip:disabled{cursor:default}.gm-prompt{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 16px;padding:16px 0;text-align:center}.gm-verb{flex-direction:column}.gm-big{margin:0;font-size:clamp(28px,6vw,44px);font-weight:700;line-height:1.15;overflow-wrap:anywhere}.gm-sub{margin:0;color:var(--secondary);font-size:var(--fs-h2)}.gm-step{margin:0;padding:4px 16px;border-radius:var(--radius-chip);background:var(--page);color:var(--secondary);font-size:var(--fs-meta);font-weight:700}.gm-icon-btn{width:48px;padding:0!important}.gm-listen svg{width:24px;height:24px}.gm-slots,.gm-letters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none}.gm-slot,.gm-letter{width:48px;height:56px;padding:0;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--edge-strong);color:var(--text);font-size:24px;font-weight:700}.gm-slot{border-bottom:3px solid var(--text);box-shadow:none}.gm-slot:not(.is-filled){background:var(--page);border-color:var(--hairline);border-bottom-color:var(--secondary)}.gm-slot.is-filled{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.gm-slot.is-right{border-color:var(--c-green-ink);background:var(--c-green-soft);color:var(--c-green-ink)}.gm-slot.is-wrong{border-color:var(--c-rose-ink);background:var(--c-rose-soft);color:var(--c-rose-ink)}.gm-slot:disabled{cursor:default}.gm-letter:disabled{opacity:.35;box-shadow:none;cursor:default}.gm-letter:active:not(:disabled){transform:translateY(2px);box-shadow:none}.gm-meter{height:8px;border-radius:8px;background:var(--hairline);overflow:hidden}.gm-meter span{display:block;height:100%;background:var(--accent)}.gm-options{display:grid;gap:8px;margin:0;padding:0;list-style:none;max-width:520px;width:100%;margin-inline:auto}.gm-option{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;padding:8px 16px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--edge-strong);color:var(--text);font-size:var(--fs-h2);font-weight:700}.gm-option:hover:not(:disabled){border-color:var(--accent)}.gm-option:active:not(:disabled){transform:translateY(2px);box-shadow:none}.gm-option.is-right{border-color:var(--c-green-ink);background:var(--c-green-soft);color:var(--c-green-ink)}.gm-option.is-wrong{border-color:var(--c-rose-ink);background:var(--c-rose-soft);color:var(--c-rose-ink)}.gm-option:disabled{cursor:default}.gm-feedback{display:flex;align-items:center;gap:8px;margin:0;min-height:32px;font-weight:600}.gm-feedback.is-right{color:var(--c-green-ink)}.gm-feedback.is-wrong{color:var(--c-rose-ink)}.gm-form{display:grid;gap:8px;max-width:520px;width:100%;margin-inline:auto}.gm-form label{font-size:var(--fs-meta);font-weight:600;color:var(--secondary)}.gm-form input{font-size:var(--fs-h2)}.gm-end{position:relative;display:grid;justify-items:center;gap:16px;padding:32px 24px;background:var(--surface);border:1px solid var(--hairline);border-radius:20px;text-align:center;overflow:hidden}.gm-end-star{display:inline-flex;width:64px;height:64px;align-items:center;justify-content:center;border-radius:50%;background:var(--c-amber-soft);color:var(--c-amber-ink)}.gm-end-star svg{width:32px;height:32px}.gm-result{display:grid;gap:4px;margin:0}.gm-result-label{color:var(--secondary);font-size:var(--fs-meta);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.gm-result strong{font-size:clamp(36px,8vw,56px);line-height:1.1;font-variant-numeric:tabular-nums}.gm-detail{margin:0;color:var(--secondary)}.gm-best{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 16px;border-radius:var(--radius-control);background:var(--page);color:var(--secondary);font-weight:600;min-height:24px}.gm-best:empty{display:none}.gm-best.is-best{background:var(--c-green-soft);color:var(--c-green-ink)}.gm-end-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px}.gm-confetti{position:absolute;inset:0;pointer-events:none;display:none}.gm-team{display:grid;gap:24px}.gm-scoreboard{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gm-team-card{display:grid;justify-items:center;gap:8px;padding:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:20px;box-shadow:var(--edge);min-width:0}.gm-team-card.is-turn{border-color:var(--accent)}.gm-team-name{width:100%;min-height:44px;padding:4px 8px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--text);font:inherit;font-size:var(--fs-h2);font-weight:700;text-align:center;min-width:0}.gm-team-name:hover,.gm-team-name:focus{border-color:var(--hairline);background:var(--page)}.gm-score{font-size:clamp(40px,8vw,72px);line-height:1;font-variant-numeric:tabular-nums}.gm-turn{min-height:44px;padding:4px 16px;border:0;border-radius:var(--radius-chip);background:transparent;color:var(--secondary);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer}.gm-turn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink)}.gm-team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}.gm-team-grid li{display:flex}.gm-num{width:100%;min-height:88px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--edge-strong);color:var(--text);font-size:clamp(28px,5vw,48px);font-weight:700;display:flex;align-items:center;justify-content:center}.gm-num:hover:not(:disabled){border-color:var(--accent)}.gm-num:active:not(:disabled){transform:translateY(2px);box-shadow:none}.gm-num.is-used{background:var(--page);color:var(--secondary);box-shadow:none;cursor:default}.gm-num svg{width:32px;height:32px}.gm-overlay{position:fixed;inset:0;z-index:50;display:grid;grid-template-rows:auto 1fr auto;gap:16px;padding:24px;background:var(--page);overflow-y:auto}.gm-overlay-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px}.gm-overlay-top h2{font-size:var(--fs-h2);color:var(--secondary)}.gm-mini{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0;font-size:var(--fs-h2)}.gm-mini .is-turn{font-weight:700}.gm-overlay-body{display:grid;align-content:center;justify-items:center;gap:24px;max-width:960px;width:100%;margin:0 auto;text-align:center}.gm-surprise{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 16px;border-radius:var(--radius-chip);background:var(--c-amber-soft);color:var(--c-amber-ink);font-size:var(--fs-h2);font-weight:700}.gm-q{color:var(--text);display:flex;align-items:center;justify-content:center;gap:16px;margin:0;font-size:clamp(28px,5vw,56px);font-weight:700;line-height:1.2;overflow-wrap:anywhere}.gm-q-sub{margin:0;color:var(--secondary);font-size:var(--fs-h2)}.gm-q-options{display:grid;gap:8px;margin:0;padding:0;list-style:none;font-size:clamp(22px,3.5vw,36px);font-weight:600;text-align:left}.gm-q-options span{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-right:16px;border-radius:50%;background:var(--surface);border:1px solid var(--hairline);font-size:var(--fs-body)}.gm-answer{display:grid;gap:4px;padding:16px 24px;border-radius:20px;background:var(--c-green-soft);color:var(--c-green-ink)}.gm-answer span{font-size:var(--fs-meta);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.gm-answer strong{font-size:clamp(24px,4vw,44px);line-height:1.2;overflow-wrap:anywhere}.gm-answer small{font-size:var(--fs-body)}.gm-award{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px}.gm-award .button{min-height:56px;font-size:var(--fs-h2)}.gm-overlay-foot{display:flex;justify-content:center}.gm-final{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin:0;padding:0;list-style:none}.gm-final li{display:grid;gap:4px;min-width:160px;padding:16px 24px;border:1px solid var(--hairline);border-radius:20px;background:var(--surface)}.gm-final li.is-top{border-color:var(--c-green-ink)}.gm-final strong{font-size:48px;line-height:1}@media(max-width:600px){.gm-board,.gm-setup,.gm-card{padding:16px}.gm-match{grid-template-columns:repeat(2,minmax(0,1fr))}.gm-tile{min-height:64px}.gm-memory{grid-template-columns:repeat(3,minmax(0,1fr))}.gm-card-flip{min-height:80px}.gm-slot,.gm-letter{width:40px;height:52px}.gm-scoreboard{gap:8px}.gm-team-card{padding:8px}.gm-team-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.gm-overlay{padding:16px}}@media(prefers-reduced-motion:no-preference){.gm-confetti{display:block}.gm-confetti i{position:absolute;top:-12px;left:calc(var(--i) * 6.25%);width:8px;height:14px;border-radius:2px;background:var(--c-blue);animation:gm-fall 1.6s ease-out both;animation-delay:calc(var(--i) * 60ms)}.gm-confetti i:nth-child(3n){background:var(--c-coral)}.gm-confetti i:nth-child(3n+1){background:var(--c-green)}.gm-confetti i:nth-child(5n){background:var(--c-violet)}@keyframes gm-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(320px) rotate(360deg);opacity:0}}.gm-end-star{animation:gm-pop .5s var(--ease-spring) both}@keyframes gm-pop{0%{transform:scale(.5);opacity:0}to{transform:none;opacity:1}}.gm-tile,.gm-option,.gm-card-flip,.gm-letter,.gm-num{transition:transform .12s var(--ease-spring),box-shadow .12s,background .12s,border-color .12s}.gm-tile.is-wrong{animation:gm-shake .3s}@keyframes gm-shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}}.bk{max-width:1320px}.bk-lead{margin:0;max-width:760px;color:var(--secondary)}.bk-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}.bk-center,.bk-main{min-width:0}@media(min-width:1200px){.bk-layout{grid-template-columns:320px minmax(0,1fr);gap:24px;margin-left:-28px}}.bk-navcol{display:none}.bk-navhead{display:flex;align-items:center;justify-content:space-between}.bk-navhead h2{margin:0;font-size:18px}.bk-navfoot{display:none}.bk-navcol.open .bk-navfoot{display:flex;flex:none;padding:8px 0 calc(4px + env(safe-area-inset-bottom))}.bk-navfoot .button{flex:1;min-height:48px}.bk-navcol.open{position:fixed;z-index:50;inset:0;display:flex;flex-direction:column;gap:8px;padding:12px 16px;background:var(--page);overflow:hidden}@media(min-width:1200px){.bk-navcol,.bk-navcol.open{position:sticky;z-index:auto;inset:16px auto auto;display:flex;flex-direction:column;gap:0;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);padding:0;background:transparent}.bk-navhead,.bk-navcol.open .bk-navfoot,.bk-topics-btn{display:none}}.bk-topline{display:flex;align-items:center;gap:8px}.bk-topline .bk-searchwrap{flex:1;min-width:0}.bk-topline .button{flex:none;min-width:44px}.bk-topline .button svg{flex:none}.bk-topics-btn{gap:6px}.bk-topics-btn .bk-n{padding:1px 7px;border-radius:var(--radius-chip);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}@media(max-width:640px){.bk-build-text,.bk-topics-btn span:not(.bk-n){display:none}.bk-search{min-height:48px;font-size:16px}}.bk-off{max-width:640px;padding:24px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.bk-off h2{margin:0 0 8px}.bk-off ol{margin:12px 0 0;padding-left:20px;display:grid;gap:6px}.bk-searchwrap{position:relative}.bk-search{display:block;width:100%;min-height:52px;padding:0 16px 0 48px;font-size:17px;border:2px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface)}.bk-search:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.bk-search-icon{position:absolute;left:14px;top:14px;display:grid;place-items:center;color:var(--secondary);pointer-events:none}.bk-sug{position:absolute;z-index:15;left:0;right:0;top:100%;margin:4px 0 0;padding:4px;list-style:none;max-height:60vh;overflow:auto;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-control);box-shadow:0 8px 24px #11182724}.bk-sug[hidden]{display:none}.bk-sug li{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 10px;border-radius:8px;cursor:pointer}.bk-sug li:hover,.bk-sug li[aria-selected=true]{background:var(--accent-soft)}.bk-sug-name{flex:1;min-width:0}.bk-sug-name b{display:block;font-weight:600;line-height:1.25}.bk-sug-name span{display:block;font-size:var(--fs-meta);color:var(--secondary)}.bk-n{flex:none;font-size:var(--fs-meta);color:var(--secondary)}.bk-sug .bk-n{padding:1px 8px;border-radius:var(--radius-chip);background:var(--page)}.bk-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none}.bk-chiprow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.bk-chiprow .bk-chips{margin:0}.bk-mode{flex:none}.bk-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 4px 0 14px;border-radius:var(--radius-chip);background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent-ink);font-weight:600}.bk-chip small{font-weight:400;font-size:var(--fs-meta)}.bk-chip button,.bk-icon,.bk-sheet-close{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:inherit;cursor:pointer}.bk-chip button:hover,.bk-icon:hover:not(:disabled),.bk-sheet-close:hover{background:#1118270f}.bk-filters{display:grid;gap:8px;margin:12px 0 0}.bk-frow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.bk-frow .bk-status{margin:0 0 0 auto;white-space:nowrap}.bk-seg{display:inline-flex;max-width:100%;overflow-x:auto;padding:2px;gap:2px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);scrollbar-width:none}.bk-seg::-webkit-scrollbar{display:none}.bk-seg button{flex:none;min-width:44px;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--secondary);font-weight:500;cursor:pointer;white-space:nowrap}.bk-seg button:hover{background:var(--page);color:var(--text)}.bk-seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.bk-select{min-height:44px;max-width:100%;padding:0 10px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font-size:14px}.bk-toggle{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid var(--hairline);border-radius:var(--radius-chip);background:var(--surface);color:var(--text);font-size:14px;cursor:pointer;white-space:nowrap}.bk-toggle:hover{border-color:var(--accent)}.bk-toggle[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.bk-toggle svg{width:18px;height:18px}.bk-bar-end{display:flex;align-items:center;gap:4px;margin-left:auto}.bk-bar-end .bk-status{margin:0;white-space:nowrap}.bk-bar-end .button{min-width:0;padding:0 12px}@media(max-width:760px){.bk-seg{flex:1 0 100%}.bk-select{flex:1 1 calc(50% - 4px);min-width:0}.bk-bar-end{flex:1 0 100%;margin-left:0;justify-content:space-between}}.bk-status{color:var(--secondary);font-weight:600}.bk-hint{margin:0 0 12px;color:var(--secondary)}.bk-dym{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}.bk-empty{padding:40px 10px;text-align:center;color:var(--secondary)}.bk-nav{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1;padding:12px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.bk-navcol.open .bk-nav{border-radius:var(--radius-control)}.bk-nsec+.bk-nsec{margin-top:8px}.bk-ncl+.bk-ncl{margin-top:2px}.bk-ncl h4,.bk-nsec h3{margin:0}.bk-fold{display:flex;align-items:center;gap:6px;width:100%;min-height:44px;padding:0 4px;border:0;border-radius:6px;background:none;color:var(--secondary);font:inherit;font-size:var(--fs-meta);font-weight:500;text-align:left;cursor:pointer}.bk-fold:hover{color:var(--text)}.bk-nsec h3 .bk-fold{font-weight:600;letter-spacing:.04em;text-transform:uppercase}.bk-fold .bk-sw-caret,.bk-ng-toggle .bk-sw-caret{transition:transform .15s ease}.bk-fold .bk-sw-caret{width:6px;height:6px;margin:0 0 2px 2px;transform:rotate(45deg)}.bk-fold[aria-expanded=false] .bk-sw-caret{margin:0 0 0 2px;transform:rotate(-45deg)}.bk-nsec-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.bk-nsec-head h3{flex:1;min-width:0}.bk-nsec-head .bk-fold{width:auto}.bk-fold-all{min-height:44px;padding:0 8px;border:0;border-radius:6px;background:none;color:var(--accent-ink);font:inherit;font-size:var(--fs-meta);font-weight:600;cursor:pointer}.bk-fold-all:hover{background:var(--accent-soft)}.bk-fold-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s ease-out,visibility 0s}.bk-fold-body[data-open=false]{grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .2s ease-in,visibility 0s .2s}.bk-fold-inner{min-height:0;overflow:hidden}@media(prefers-reduced-motion:reduce){.bk-fold-body,.bk-fold-body[data-open=false],.bk-fold .bk-sw-caret,.bk-ng-toggle .bk-sw-caret{transition:none}}.bk-navmode{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.bk-navmode .bk-mode{flex:none}.bk-navmode .bk-seg button{min-width:44px;min-height:44px;padding:0 12px}.bk-navhint{flex:1 1 120px;min-width:0;margin:0;color:var(--secondary);font-size:var(--fs-meta);line-height:1.25}.bk-nav-list{flex:1;min-height:0;overflow-y:auto;margin:0 -4px;padding:0 4px;scrollbar-width:none}.bk-nav-list::-webkit-scrollbar{display:none}.bk-ng-head{display:flex;align-items:center;gap:2px;min-height:44px;padding-left:8px}.bk-ng-head input{flex:none;width:18px;height:18px;margin:0 8px 0 0;accent-color:var(--accent)}.bk-ng-toggle{display:flex;flex:1;min-width:0;align-items:center;gap:8px;min-height:44px;padding:0 4px;border:0;border-radius:8px;background:none;color:var(--text);font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer}.bk-ng-head:hover,.bk-ng-head:focus-within{border-radius:8px;background:var(--accent-soft)}.bk-ng-toggle .bk-sw-caret{flex:none;margin:0 6px 0 2px;transform:rotate(-45deg)}.bk-ng-toggle[aria-expanded=true] .bk-sw-caret{margin:0 6px 4px 2px;transform:rotate(45deg)}.bk-ng-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bk-ng-picked{padding:0 7px;border-radius:var(--radius-chip);background:var(--accent);color:#fff;font-size:var(--fs-meta)}.bk-ng ul{margin:0;padding:0 0 4px 18px;list-style:none}.bk-nrow{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;padding:0 8px;border-radius:8px;font-size:14px;font-weight:400;cursor:pointer}.bk-nrow:hover,.bk-nrow:focus-within{background:var(--accent-soft)}.bk-nrow input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--accent)}.bk-nrow-name{flex:1;min-width:0;padding:3px 0;line-height:1.3;overflow-wrap:anywhere}.bk-nrow.is-zero .bk-nrow-name,.bk-nrow.is-zero .bk-n{color:var(--secondary)}.bk-nrow.is-zero input{opacity:.6}.bk-nav .bk-n{flex:none;min-width:24px;text-align:right}.bk-text-box{margin-top:0}.bk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.bk-level-head{grid-column:1 / -1;display:flex;align-items:baseline;gap:8px;margin:10px 0 0;padding-bottom:4px;border-bottom:2px solid var(--hairline)}.bk-level-head:first-child{margin-top:0}.bk-level-head span{font-size:var(--fs-meta);font-weight:400;color:var(--secondary)}.bk-card{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-control);box-shadow:var(--edge);content-visibility:auto;contain-intrinsic-size:auto 290px}.bk-card.in{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.bk-open{all:unset;display:flex;flex-direction:column;flex:1;min-width:0;cursor:pointer}.bk-open:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.bk-thumb{display:flex;height:200px;background:#fff;border-bottom:1px solid var(--hairline)}.bk-thumb img{width:100%;height:100%;object-fit:contain;object-position:top center}.bk-noimg{padding:10px;overflow:hidden;font-size:var(--fs-meta);color:var(--secondary);white-space:pre-wrap}.bk-cap{display:block;padding:10px 12px 12px;font-size:14px;line-height:1.35}.bk-cap-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:600}.bk-cap-sub{display:block;color:var(--secondary)}.bk-add{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--hairline);border-radius:50%;background:#fffffff5;color:var(--text);cursor:pointer}.bk-add:hover{border-color:var(--accent)}.bk-card.in .bk-add{background:var(--accent);border-color:var(--accent);color:#fff}.bk-badge{position:absolute;top:8px;left:8px;padding:1px 8px;border-radius:6px;border:1px solid var(--hairline);background:#fffffff5;font-size:var(--fs-label);color:var(--secondary)}.bk-more{display:flex;justify-content:center;margin:20px 0}.modal:has(.bk-modal-body){width:min(960px,calc(100% - 32px))}.bk-modal-body{display:flex;flex-direction:column;gap:12px}.bk-modal-sub{margin:0;color:var(--secondary)}.bk-big{display:block;width:100%;height:auto;border:1px solid var(--hairline);border-radius:8px;background:#fff}.bk-instruction{margin:0;font-size:16px}.bk-tags-label{flex:none;font-size:var(--fs-meta);color:var(--secondary)}.bk-topics,.bk-words{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px}.bk-pill{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:transparent;cursor:pointer}.bk-pillv{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:var(--radius-chip);background:var(--page);color:var(--text);font-size:13px;line-height:1.2}.bk-words .bk-pillv{margin:7px 0}.bk-pill.primary .bk-pillv{background:var(--accent-soft);color:var(--accent-ink);font-weight:600;box-shadow:inset 0 0 0 1px var(--accent)}.bk-pill.secondary .bk-pillv{background:var(--accent-soft);color:var(--accent-ink)}.bk-pill.theme .bk-pillv{background:var(--c-amber-soft);color:var(--c-amber-ink)}.bk-pill:hover .bk-pillv{filter:brightness(.96)}.bk-pillv.word{background:var(--page);color:var(--secondary)}.bk-detail{display:grid;gap:4px;margin:0 0 8px;font-size:14px}.bk-detail b{font-size:var(--fs-meta);font-weight:600;color:var(--secondary)}.bk-foot{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:8px;width:100%}.bk-foot-nav,.bk-foot-act{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;min-width:0}.bk-counter{padding:0 6px;color:var(--secondary);font-size:14px;white-space:nowrap}.bk-chev{display:block;width:9px;height:9px;border:solid currentColor;border-width:0 2px 2px 0}.bk-chev.left{transform:rotate(135deg);margin-left:4px}.bk-chev.right{transform:rotate(-45deg);margin-right:4px}.bk-foot .button{white-space:nowrap}.bk-lbl-short{display:none}@media(max-width:480px){.bk-lbl-long{display:none}.bk-lbl-short{display:inline}}.bk-fmenu-link{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:10px;color:var(--text);text-decoration:none}.bk-fmenu-link:hover,.bk-fmenu-link:focus-visible{background:var(--accent-soft);color:var(--accent-ink);outline:none}.bk-text-box summary{display:flex;align-items:center;min-height:44px;cursor:pointer;color:var(--secondary)}.bk-text,.bk-answers{margin:0;padding:10px 12px;border-radius:8px;font:inherit;white-space:pre-wrap}.bk-text{background:var(--page)}.bk-answers{margin-top:8px;background:var(--c-amber-soft);color:var(--c-amber-ink)}.bk-answers[hidden]{display:none}.modal-foot a.button{text-decoration:none;color:inherit}.modal-foot a.button.primary,a.button.primary{color:#fff}@media(min-width:761px){.modal:has(.bk-build){width:min(560px,calc(100% - 32px))}}@media(max-width:760px){.modal:has(.bk-build){top:0;bottom:0;height:100vh;height:100dvh;max-height:none;padding-top:16px;border-radius:0}}.bk-build{display:grid;gap:16px}.bk-build-fields{display:grid;gap:16px;min-width:0;margin:0;padding:0;border:0}.bk-fgroup{display:grid;gap:8px;min-width:0;align-content:start}.bk-flabel{margin:0;font-size:14px;font-weight:600;color:var(--secondary)}.bk-build .bk-hint{margin:0;font-size:var(--fs-meta)}.bk-build .bk-chips{margin:0}.bk-build .bk-select{width:100%;box-sizing:border-box}.bk-build .bk-num{padding:0 12px}.bk-field-error{margin:0;color:var(--c-rose-ink);font-size:var(--fs-meta)}.bk-field-error:empty{display:none}.bk-examples{display:flex;flex-wrap:wrap;gap:0 4px;margin:-8px 0 0}.bk-ghost{min-height:44px;padding:0 12px;border:0;border-radius:var(--radius-chip);background:transparent;color:var(--accent-ink);font-size:14px;cursor:pointer}.bk-ghost:hover{background:var(--accent-soft)}.bk-two{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:16px}.bk-two-even{grid-template-columns:repeat(2,minmax(0,1fr))}.bk-student .bk-sw-btn{gap:8px}.bk-student .avatar-art{flex:none}.bk-profile{margin:-8px 0 0;color:var(--secondary);font-size:var(--fs-meta)}.bk-build-fields>*,.bk-opts-body{min-width:0}.bk-opts{border-top:1px solid var(--hairline)}.bk-opts-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:52px;padding:0;border:0;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.bk-opts-btn b{flex:none;font-weight:600}.bk-opts-btn span:not(.bk-sw-caret){flex:1;min-width:0;overflow:hidden;color:var(--secondary);font-size:var(--fs-meta);text-overflow:ellipsis;white-space:nowrap}.bk-opts-body{display:grid;gap:16px;padding:4px 0 8px}.bk-pills{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.bk-pills .bk-toggle{min-width:0;white-space:normal;text-align:left}.bk-seg-wrap{display:flex;flex-wrap:wrap;width:fit-content;max-width:100%;overflow:visible}.bk-seg-wrap button{flex:0 1 auto;min-width:44px;padding:0 12px;white-space:nowrap}.bk-build,.bk-build-fields,.bk-opts-body,.bk-fgroup{grid-template-columns:minmax(0,1fr)}.bk-build .bk-seg button{min-height:44px}.bk-build .bk-hint,.bk-profile{text-wrap:balance}.bk-busy{display:flex;align-items:center;gap:10px;margin:0}.bk-error{margin:0;padding:10px 12px;border-radius:8px;background:var(--c-rose-soft);color:var(--c-rose-ink)}.bk-spin{flex:none;width:18px;height:18px;border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%}@media(prefers-reduced-motion:no-preference){.bk-spin{animation:bk-spin 1s linear infinite}@keyframes bk-spin{to{transform:rotate(360deg)}}}.bk-sw{position:relative;flex:1;min-width:0}.bk-sw-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font-size:15px;font-weight:600;text-align:left;cursor:pointer}.bk-sw-btn:hover{border-color:var(--accent)}.bk-sw-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bk-sw-n{flex:none;min-width:22px;padding:1px 7px;border-radius:var(--radius-chip);background:var(--page);color:var(--secondary);font-size:var(--fs-meta);font-weight:600;text-align:center}.bk-sw-caret{flex:none;width:8px;height:8px;margin:0 2px 3px 0;border:solid var(--secondary);border-width:0 2px 2px 0;transform:rotate(45deg)}.bk-sw-btn[aria-expanded=true] .bk-sw-caret{margin:3px 2px 0 0;transform:rotate(225deg)}.bk-sw-list{position:absolute;z-index:41;left:0;right:0;top:calc(100% + 4px);display:flex;flex-direction:column;padding:6px;background:#fff;border:1px solid var(--hairline);border-radius:16px;box-shadow:0 12px 32px #11182724}.bk-sw-list button{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.bk-sw-list button:hover,.bk-sw-list button:focus-visible{background:var(--accent-soft);color:var(--accent-ink);outline:none}.bk-sw-list [aria-checked=true]{font-weight:600}.bk-sw-list [aria-checked=true] .bk-sw-name:before{content:"✓ "}.bk-sw-new{margin-top:4px;border-top:1px solid var(--hairline)!important;border-radius:0 0 10px 10px!important;color:var(--accent-ink)!important}.bk-sw-new svg{width:20px;height:20px}.bk-icon:disabled{opacity:.35;cursor:default}.bk-fmenu{position:fixed;z-index:60;display:flex;flex-direction:column;min-width:200px;padding:6px;background:#fff;border:1px solid var(--hairline);border-radius:16px;box-shadow:0 12px 32px #11182724}.bk-fmenu button{display:flex;align-items:center;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.bk-fmenu button:hover:not(:disabled),.bk-fmenu button:focus-visible{background:var(--accent-soft);color:var(--accent-ink);outline:none}.bk-fmenu button:disabled{opacity:.4;cursor:default}.bk-fmenu .danger{color:#b42318}@media(max-width:999px){.bk{padding-bottom:8px}}@media(max-width:760px){.bk-thumb{height:170px}}.bk-print{position:fixed;z-index:60;inset:0;overflow:auto;background:#fff;color:#111}.bk-print-bar{position:sticky;top:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 16px;background:var(--page);border-bottom:1px solid var(--hairline)}.bk-print-name{flex:1;margin:0;font-size:15px;font-weight:600}.bk-print-doc{max-width:820px;margin:0 auto;padding:16px}.bk-print-doc h1{margin:0 0 4px;font-size:24px}.bk-print-meta{margin:0 0 16px;color:#4b5563;font-size:14px}.bk-print-item{margin:0 0 18px;break-inside:avoid}.bk-print-label{margin:0 0 4px;color:#4b5563;font-size:13px}.bk-print-note{margin:4px 0 0;font-size:14px;font-style:italic}.bk-print-item img{display:block;width:100%;height:auto}.bk-print-item pre,.bk-print-answer pre{margin:2px 0 0;font:inherit;white-space:pre-wrap}.bk-print-answers{break-before:page}.bk-print-answer{margin:0 0 12px;break-inside:avoid}.bk-print-answer b{display:block;font-size:14px}@media print{@page{margin:12mm}body:has(.bk-print) #root{display:none}.bk-print{position:static;overflow:visible}.bk-print-bar{display:none}.bk-print-doc{max-width:none;padding:0}}@media(prefers-reduced-motion:reduce){.bk-card,.bk-chip,.bk-add{transition:none}}.bk-ask{display:block;width:100%;box-sizing:border-box;min-height:88px;padding:12px 16px;border:2px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);font:inherit;font-size:16px;line-height:1.4;resize:none;overflow-y:auto}.bk-ask:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.bk-sw-list{max-width:100%;overflow-y:auto}.bk-sw-list.up{top:auto;bottom:calc(100% + 4px)}.bk-ms{position:relative;min-width:0}.bk-ms-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}.bk-ms-btn:hover{border-color:var(--accent)}.bk-ms-btn[data-active]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.bk-ms-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bk-ms-btn[aria-expanded=true] .bk-sw-caret{margin:3px 2px 0 0;transform:rotate(225deg)}.bk-ms-list{position:absolute;z-index:41;left:0;top:calc(100% + 4px);display:flex;flex-direction:column;min-width:100%;width:max-content;max-width:min(360px,92vw);background:#fff;border:1px solid var(--hairline);border-radius:16px;box-shadow:0 12px 32px #11182724;overflow:hidden}.bk-ms-list.up{top:auto;bottom:calc(100% + 4px)}.bk-ms-rows{flex:1;min-height:0;overflow-y:auto;padding:4px;scrollbar-width:none}.bk-ms-rows::-webkit-scrollbar{display:none}.bk-ms-row{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;padding:0 10px;border-radius:8px;font-size:14px;cursor:pointer}.bk-ms-row:hover,.bk-ms-row:focus-within{background:var(--accent-soft)}.bk-ms-row input{flex:none;width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:var(--accent)}.bk-ms-clear{flex:none;min-height:44px;border:0;border-top:1px solid var(--hairline);background:transparent;color:var(--accent-ink);font:inherit;font-weight:600;cursor:pointer}.bk-ms-clear:disabled{color:var(--secondary);cursor:default}.bk-short{display:grid;gap:8px;padding:12px;border-radius:var(--radius-control);background:var(--c-amber-soft);color:var(--c-amber-ink)}.bk-short p{margin:0}.bk-tray{position:sticky;z-index:20;bottom:12px;display:flex;align-items:center;gap:8px;margin-top:12px;padding:6px 8px 6px 12px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:0 4px 16px #1118271f}.bk-tray-icon{display:grid;place-items:center;flex:none;color:var(--secondary)}.bk-tray .bk-sw{flex:1 1 0;max-width:360px}.bk-tray-n{flex:none;margin-left:auto;color:var(--secondary);font-size:14px;white-space:nowrap}.bk-tray-open{flex:none;text-decoration:none}.bk-tray-clear{flex:none}.bk-toast-action{min-height:44px;padding:0 4px;border:0;background:none;color:inherit;font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}@media(max-width:760px){.bk-tray{bottom:calc(84px + env(safe-area-inset-bottom))}.bk-center{padding-bottom:8px}.bk-tray-n{display:none}.bk-tray-open{margin-left:auto}}.bk-toast a{color:inherit;font-weight:600;text-underline-offset:2px}.bk-cl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:0;padding:0;list-style:none}.bk-cl-card{position:relative;display:flex;gap:8px;align-items:flex-start;padding:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.bk-cl-main{flex:1;min-width:0;display:grid;gap:8px}.bk-cl-main h2{margin:0;font-size:18px;overflow-wrap:anywhere}.bk-cl-main h2 a{color:inherit;text-decoration:none}.bk-cl-main h2 a:after{content:"";position:absolute;inset:0;border-radius:var(--radius-card)}.bk-cl-meta{margin:0;color:var(--secondary);font-size:14px}.bk-cl-strip{display:flex;gap:6px;min-height:42px}.bk-cl-strip img{width:56px;height:42px;object-fit:cover;object-position:top left;border:1px solid var(--hairline);border-radius:6px;background:#fff}.bk-cl-extra{display:inline-flex;align-items:center;gap:4px;padding:0 8px;border-radius:6px;background:var(--page);color:var(--secondary);font-size:14px}.bk-cl-card .more-button{position:relative;z-index:1}.bk-ed{display:grid;gap:16px;max-width:880px}.bk-ed-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.bk-ed-name{flex:1 1 280px;min-width:0;min-height:52px;padding:0 16px;border:2px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface);font:inherit;font-size:22px;font-weight:700}.bk-ed-name:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.bk-ed-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.bk-ed-meta{margin:-8px 0 0;color:var(--secondary);font-size:14px}.bk-ed-list{display:grid;gap:16px;margin:0;padding:0;list-style:none}.bk-item{display:grid;gap:12px;padding:12px 16px 16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.bk-item.is-extra{border-left:4px solid var(--accent)}.bk-item-head{display:flex;align-items:center;gap:8px;min-width:0}.bk-item-head>b{flex:1;min-width:0}.bk-item-title{display:grid;flex:1;min-width:0}.bk-item-title b,.bk-item-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bk-item-title span{color:var(--secondary);font-size:14px}.bk-ed-acts{display:flex;flex:none}.bk-icon.flip svg{transform:rotate(180deg)}.bk-badge-inline{flex:none;padding:1px 8px;border-radius:6px;border:1px solid var(--hairline);font-size:var(--fs-label);color:var(--secondary)}.bk-item-pic{display:block;padding:0;border:1px solid var(--hairline);border-radius:8px;background:#fff;cursor:zoom-in;overflow:hidden}.bk-item-pic img{display:block;width:100%;max-height:420px;object-fit:contain;object-position:top center}.bk-item-note{display:grid;gap:4px;margin:0}.bk-item-note span{font-size:14px;font-weight:600;color:var(--secondary)}.bk-item-note textarea{width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);font:inherit;resize:vertical}.bk-ed-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.bk-ed-add .bk-hint{margin:0}.bk-ed-add .button svg{flex:none}.bk-chip-sep{align-self:center;color:var(--secondary);font-size:var(--fs-meta);list-style:none}@media(min-width:1200px){.bk-ng-head,.bk-ng-toggle,.bk-nrow,.bk-fold-all,.bk-fold{min-height:32px}.bk-nav input[type=checkbox]{min-height:0;padding:0}.bk-filters .bk-ms-row{min-height:32px}.bk-filters .bk-ms-clear{min-height:36px}.bk-nrow{padding:0 8px}.bk-nav{padding:8px 10px}.bk-navmode .bk-seg button{min-height:32px}}.bk-board-btn,.bk-tray-board,.bk-tray-print{display:inline-flex;align-items:center;gap:8px;flex:none;min-height:44px}.bk-board-btn svg,.bk-tray-board svg,.bk-tray-print svg{width:20px;height:20px;display:block}.bk-board{display:grid;gap:12px}.bk-board-hint{margin:0;color:var(--secondary)}.bk-board-who{display:grid;gap:4px;margin:0;padding:0;border:0;min-width:0}.bk-board-who legend{padding:0;margin-bottom:4px;font-weight:600}.bk-board-opt{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 12px;border:1px solid var(--hairline);border-radius:var(--radius-control);cursor:pointer}.bk-board-opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.bk-board-opt input{width:20px;height:20px;margin:0}.bk-board-foot{display:flex;justify-content:flex-end;gap:8px;width:100%}.bk-board-foot .button{min-height:44px}@media(max-width:760px){.bk-tray-board .bk-tray-board-text{display:none}.bk-tray-board{min-width:44px;justify-content:center;padding:0}}.builder .toolbar-actions .bk-toast-live{position:fixed;left:50%;bottom:24px;z-index:30;transform:translate(-50%);max-width:calc(100vw - 32px)}.builder .toolbar-actions .bk-toast{margin:0;padding:4px 16px;border-radius:999px;background:var(--c-green-ink);color:#fff;font-weight:600}.builder .toolbar-actions .bk-toast.error{background:var(--c-red-ink, #9B1C1C)}@media(max-width:760px){.builder .toolbar-actions .bk-toast-live{bottom:88px}}.ai-wait{display:grid;gap:8px;padding:12px 14px;border-radius:var(--radius-control);background:var(--accent-soft);color:var(--text)}.ai-wait:focus{outline:none}.ai-wait-head{display:flex;align-items:center;gap:10px}.ai-wait-head strong{flex:1;font-weight:600}.ai-wait-time{color:var(--secondary);font-size:var(--fs-meta);font-variant-numeric:tabular-nums}.ai-wait-bar{height:6px;border-radius:999px;background:color-mix(in srgb,var(--accent) 15%,transparent);overflow:hidden}.ai-wait-bar span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .5s linear}.ai-wait-steps{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;padding:0;list-style:none;font-size:var(--fs-meta);color:var(--secondary)}.ai-wait-steps li.done{color:var(--correct, var(--text))}.ai-wait-steps li.done:before{content:"✓ "}.ai-wait-steps li.now{color:var(--text);font-weight:600}.ai-wait small{color:var(--secondary);font-size:var(--fs-meta)}@media(prefers-reduced-motion:reduce){.ai-wait-bar span{transition:none}}.rs{margin:0 0 16px;padding:12px 16px 16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge)}.rs-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-height:44px}.rs-head h2{margin:0;font-size:16px;line-height:1.3}.rs-count{padding:1px 8px;border-radius:var(--radius-chip);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-meta);font-weight:600}.rs-hint{flex:1;min-width:0;font-size:var(--fs-meta);color:var(--secondary)}.rs-more{margin-left:auto;min-height:44px}.rs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:8px 0 0;padding:0;list-style:none}.rs-card{display:flex;gap:12px;min-width:0;padding:8px;background:var(--page);border:1px solid var(--hairline);border-radius:var(--radius-control)}.rs-thumb{flex:none;display:grid;place-items:center;width:96px;height:72px;overflow:hidden;border-radius:8px;background:var(--surface);border:1px solid var(--hairline);color:var(--secondary)}.rs-thumb img{display:block;width:100%;height:100%;object-fit:cover}.rs-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rs-title{margin:0;font-weight:600;font-size:var(--fs-body);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.rs-meta{margin:0;font-size:var(--fs-meta);color:var(--secondary)}.rs-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 8px;margin-top:auto}.rs-source{padding:1px 8px;border-radius:var(--radius-chip);border:1px solid var(--hairline);background:var(--surface);font-size:var(--fs-label);color:var(--secondary);white-space:nowrap}.rs-open{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;margin-left:auto;color:var(--accent-ink);text-decoration:none;font-weight:600}.rs-open svg{width:20px;height:20px;flex:none}@media(max-width:480px){.rs-grid{grid-template-columns:minmax(0,1fr)}.rs-hint{flex-basis:100%;order:3}.rs-thumb{width:80px;height:60px}}@media(prefers-reduced-motion:reduce){.rs *{transition:none}}.ai-gen .bk-ask{min-height:88px}.ai-gen .ai-source{min-height:96px;resize:vertical}.ai-gen .bk-fgroup{align-content:start}.ai-chips{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 0;min-width:0}.ai-chip{min-height:44px;padding:0 14px;border:1px solid var(--hairline);border-radius:var(--radius-chip);background:var(--surface);color:var(--accent-ink);font:inherit;font-size:14px;text-align:left;cursor:pointer}.ai-chip:hover{border-color:var(--accent);background:var(--accent-soft)}.ai-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px;min-width:0}.ai-row>*{min-width:0}.ai-row>.ai-check{align-self:flex-end}.ai-gen .ai-count{width:88px;flex:none;text-align:center}.ai-countrow{display:flex;align-items:center;gap:8px;min-width:0}.ai-countrow .bk-seg{flex:0 0 auto}.cc-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 12px}.cc-two .cc-ai{flex-direction:column;align-items:flex-start;margin:0}.cc-two .cc-blank{border-color:var(--hairline);background:var(--surface);color:var(--text)}.cc-two .cc-blank:hover{border-color:var(--accent);background:var(--accent-soft)}.cc-two .cc-ai span span{display:block;margin-top:2px;font-size:13px}.cc-wordhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.cc-wordhead .button{min-height:44px;padding:0 14px;font-size:13px}.ai-check{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin:0;padding:0 4px 0 0;color:var(--text);font-size:14px;cursor:pointer}.ai-check input{flex:none;width:20px;height:20px;min-height:0;margin:0;padding:0;accent-color:var(--accent)}.ai-saved{margin:0;padding:10px 12px;border-radius:8px;background:var(--accent-soft);color:var(--accent-ink)}.ai-saved a{color:inherit;font-weight:600}.ai-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}.ai-foot .button{min-height:44px;min-width:120px;justify-content:center}.ai-page{max-width:640px;padding:24px;border:1px solid var(--hairline);border-radius:var(--radius-card, 20px);background:var(--surface)}@media(max-width:760px){.ai-page{padding:16px}.ai-foot .button{flex:1}}.cc-ai{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;margin:0 0 12px;padding:12px 16px;border:1px solid var(--accent);border-radius:var(--radius-card, 20px);background:var(--accent-soft);color:var(--accent-ink);font:inherit;text-align:left;cursor:pointer}.cc-ai:hover{background:var(--surface)}.cc-ai svg{flex:none;width:28px;height:28px}.cc-ai strong{display:block;font-size:16px}.cc-ai span span{display:block;color:var(--secondary);font-size:var(--fs-meta)}.create-form .ws-head{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap}.ws-head .as-note{flex:1 1 160px;min-width:0}.ws-head .button{min-height:44px;padding:0 14px;font-size:13px}.ws-warn{color:var(--c-rose-ink, #B42318)}.ws-error{padding:10px 12px;border-radius:8px;background:var(--c-rose-soft, #FDECEC);color:var(--c-rose-ink, #B42318);overflow-wrap:anywhere}.ws-busy{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}.ws-link{min-height:44px;padding:0 4px;border:0;background:none;color:var(--accent-ink);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.ws-cards{display:grid;gap:8px;margin:0;padding:0;list-style:none}.ws-card{display:grid;grid-template-columns:64px minmax(0,1fr) 44px;align-items:center;gap:8px;padding:8px;border:1px solid var(--hairline);border-radius:14px;background:var(--surface)}.ws-card>*{min-width:0}.ws-pic{display:grid;place-items:center;width:64px;height:64px;padding:0;overflow:hidden;border:2px dashed var(--field-border, #868E9C);border-radius:12px;background:var(--field-bg, #F9FAFB);color:var(--secondary);cursor:pointer}.ws-pic svg{width:24px;height:24px}.ws-pic:hover,.ws-pic[aria-expanded=true]{border-color:var(--accent)}.ws-pic.has-image{border-style:solid;border-color:var(--hairline);background:var(--page)}.ws-pic img{width:100%;height:100%;object-fit:cover}.ws-pic:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ws-wait{width:20px;height:20px;border:3px solid var(--hairline);border-top-color:var(--accent);border-radius:50%}.ws-fields{display:grid;gap:6px}.ws-fields .vs-field{width:100%;min-height:44px;font-size:16px}.ws-card .vs-icon-btn{width:44px;height:44px}.ws-card>.vs-ed-panel{grid-column:1 / -1}.modal-foot .ws-back{margin-right:auto}@media(min-width:761px){.modal:has(.ws-cards){width:min(620px,calc(100% - 32px))}}@media(prefers-reduced-motion:no-preference){.ws-wait{animation:ws-spin .9s linear infinite}}@keyframes ws-spin{to{transform:rotate(360deg)}}.wv-meta{margin:4px 0 0;color:var(--secondary)}.wv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px;margin:0;padding:0;list-style:none}.wv-card{display:grid;align-content:start;gap:4px;min-width:0;padding:10px;border:1px solid var(--hairline);border-radius:16px;background:var(--surface)}.wv-card .wv-img{width:100%;height:120px;border-radius:10px;font-size:40px;object-fit:cover}.wv-word{margin-top:4px;font-size:18px;overflow-wrap:anywhere}.wv-tr{color:var(--text);overflow-wrap:anywhere}.wv-ex{color:var(--secondary);font-size:var(--fs-meta);overflow-wrap:anywhere}.wv-credit{color:var(--secondary);font-size:var(--fs-label, 13px);overflow-wrap:anywhere}.wv-edit{max-width:720px}.ws-add{justify-self:start;display:inline-flex;align-items:center;gap:8px;min-height:44px}.ws-add svg{width:20px;height:20px}.cu-drop{border-style:dashed}.cu-drop.is-over{background:var(--surface)}.cu-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;max-height:40vh;margin:8px 0;padding:0;overflow:auto;list-style:none}.cu-pages label{position:relative;display:block;min-height:44px;border:2px solid var(--line, #d8dee9);border-radius:12px;overflow:hidden;cursor:pointer}.cu-pages label.is-on{border-color:var(--accent)}.cu-pages img{display:block;width:100%;aspect-ratio:3 / 4;object-fit:cover}.cu-pages input{position:absolute;top:6px;left:6px;width:20px;height:20px}.cu-pages span{position:absolute;right:6px;bottom:6px;padding:0 6px;border-radius:8px;background:var(--surface);font-size:12px}.streak-wrap{display:grid;gap:16px}.streak-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--edge);padding:20px 24px;display:grid;gap:16px;position:relative}.streak-top{display:flex;align-items:center;gap:16px}.streak-head{flex:1;min-width:0}.streak-head h2{margin:0}.streak-big{margin:0;display:flex;align-items:baseline;gap:8px;font-size:16px;font-weight:600;color:var(--secondary)}.streak-big b{font-size:48px;line-height:1;font-weight:800;letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums}.streak-count-note{margin:3px 0 0;color:var(--secondary);font-size:var(--fs-label)}.streak-sound{min-height:44px;gap:6px;font-size:var(--fs-meta)}.streak-sound svg{width:20px;height:20px}.streak-sub{margin:0;color:var(--text);font-size:var(--fs-body)}.streak-sub small{display:block;margin-top:2px;color:var(--secondary);font-size:var(--fs-meta)}.is-milestone .streak-sub{font-weight:600;color:var(--c-coral-ink)}.streak-flame{position:relative;flex:none;width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:#f2f4f7;color:#6b7280;transition:background .4s,color .4s,box-shadow .4s,transform .4s var(--ease-spring)}.streak-flame svg{width:32px;height:32px;position:relative}.streak-flame.is-on{background:var(--c-coral-soft);color:var(--c-coral-ink)}.is-goal .streak-flame{background:radial-gradient(circle at 50% 60%,#ffe2b0 0,#ffd08a 55%,#ffc27a);color:var(--c-coral-ink);box-shadow:0 0 0 6px #ffc27a47,0 0 28px 6px #f58a3359;transform:scale(1.04)}.streak-flame i{position:absolute;left:50%;top:50%;width:3px;height:10px;margin:-5px 0 0 -1.5px;border-radius:3px;background:#f58a33;opacity:0}.streak-flame i:nth-of-type(1){--a: 0deg}.streak-flame i:nth-of-type(2){--a: 60deg}.streak-flame i:nth-of-type(3){--a: 120deg}.streak-flame i:nth-of-type(4){--a: 180deg}.streak-flame i:nth-of-type(5){--a: 240deg}.streak-flame i:nth-of-type(6){--a: 300deg}.is-burst .streak-flame i{animation:streak-ray 1.1s ease-out 1}@keyframes streak-ray{0%{opacity:0;transform:rotate(var(--a)) translateY(-26px)}25%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateY(-46px)}}.is-burst .streak-flame{animation:streak-pop .7s var(--ease-spring) 1}@keyframes streak-pop{0%{transform:scale(.85)}60%{transform:scale(1.12)}to{transform:scale(1.04)}}.streak-week{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.streak-day{display:grid;justify-items:center;gap:4px}.streak-dow{font-size:var(--fs-label);font-weight:600;color:var(--secondary);text-transform:capitalize}.streak-dot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #B9C0CB;color:transparent;background:var(--surface)}.streak-dot svg{width:20px;height:20px}.is-future .streak-dot{border-style:dashed;border-color:#d0d5dd}.is-missed .streak-dot{border-color:#d0d5dd}.is-done .streak-dot{background:var(--c-green);border-color:var(--c-green);color:#fff}.is-frozen .streak-dot{background:var(--c-blue-soft);border-color:var(--c-blue-ink);color:var(--c-blue-ink)}.is-now .streak-dot{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--accent)}.is-now .streak-dow{color:var(--accent-ink)}.streak-note{margin:0;font-size:var(--fs-meta);color:var(--secondary)}.streak-goal{display:grid;gap:8px}.streak-goal-row{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fs-body);font-weight:600}.streak-goal-row strong{font-size:20px;font-variant-numeric:tabular-nums}.streak-goal small{color:var(--secondary);font-size:var(--fs-meta)}.streak-bar{height:14px;border-radius:999px;background:#e5e8ec;overflow:hidden}.streak-bar span{display:block;height:100%;min-width:0;border-radius:999px;background:var(--c-coral);transition:width .5s var(--ease-spring)}.streak-bar.is-filling span{background-image:repeating-linear-gradient(45deg,#ffffff52 0 8px,#fff0 8px 16px);background-size:22.63px 22.63px;animation:streak-stripes 1.1s linear infinite}@keyframes streak-stripes{to{background-position:22.63px 0}}.streak-mini{display:inline-flex;align-items:center;gap:4px;padding:4px 10px 4px 6px;border-radius:999px;background:#f2f4f7;color:#4b5563;font-weight:700;font-size:var(--fs-meta)}.streak-mini svg{width:18px;height:18px}.streak-mini.is-on{background:var(--c-coral-soft);color:var(--c-coral-ink)}.activity{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);padding:24px;display:grid;gap:16px}.stat-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-content:start}.stat-row li{display:grid;gap:4px;padding:12px 16px;border-radius:16px;background:var(--page)}.stat-row b{min-width:2ch}.stat-row b{font-size:28px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums}.stat-row span,.stat-row .stat-empty{font-size:var(--fs-meta);color:var(--secondary)}.activity{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"head head" "body stats";align-items:start;column-gap:32px}.activity-head{grid-area:head}.activity-body{grid-area:body}.stat-row{grid-area:stats}.activity-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.activity-head h2{margin:0}.activity .activity-toggle{display:none;min-height:44px;grid-area:toggle;justify-self:start}.activity-body{display:grid;gap:8px;justify-items:start}.heatmap{border-collapse:separate;border-spacing:3px;width:auto}.heatmap th{font-size:11px;font-weight:600;color:var(--secondary);text-transform:capitalize;padding:0 0 2px}.hm-cell{width:16px;height:16px;border-radius:4px;border:0;background:var(--hairline);padding:0}.hm-1{background:#cfe2f8}.hm-2{background:#8db9ee}.hm-3{background:#3f86dd}.hm-4{background:#1557a8}.hm-future{background:transparent;box-shadow:inset 0 0 0 1px var(--hairline)}.heatmap .is-now{outline:2px solid var(--accent);outline-offset:1px}.hm-legend{display:flex;align-items:center;gap:4px;font-size:var(--fs-label);color:var(--secondary)}.hm-legend .hm-cell{display:inline-block;width:12px;height:12px;border-radius:3px}.hm-legend span:first-child{margin-right:4px}.hm-legend span:last-child{margin-left:4px}@media(max-width:600px){.streak-card,.activity{padding:16px}.activity{grid-template-columns:1fr;grid-template-areas:"stats" "head" "toggle" "body"}.stat-row{grid-template-columns:repeat(3,1fr);gap:8px;align-content:start}.streak-big b{font-size:40px}.streak-sound{padding-inline:8px}.stat-row li{display:grid;gap:2px;align-content:start}.stat-row b{font-size:24px}.stat-row li{padding:10px 12px}.activity .activity-toggle{display:inline-flex;align-items:center}.activity:not(.is-open) .activity-body{display:none}}@media(prefers-reduced-motion:reduce){.streak-flame,.streak-bar span{transition:none}.streak-bar.is-filling span,.is-burst .streak-flame,.is-burst .streak-flame i{animation:none}.streak-flame i{display:none}.is-goal .streak-flame{transform:none}}.inv-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:6px;position:relative;z-index:1}.inv-line .chip{font-size:var(--fs-label)}.inv-parent{color:var(--secondary);font-size:var(--fs-label)}.inv-act{min-height:24px;margin:-10px 0;padding:10px 6px;border:0;border-radius:8px;background:none;color:var(--accent-ink);font:inherit;font-size:var(--fs-label);font-weight:600;cursor:pointer;transition:background .2s}.inv-act:hover{background:var(--accent-soft)}.inv-act:focus-visible,.inv-option:focus-visible,.jn-card .avatar-option:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sp-invite .inv-card-line{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}.sp-invite .button{margin-top:12px}.inv-step{animation:inv-in .2s ease-out}@keyframes inv-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.inv-options{display:grid;gap:12px}.inv-option{display:grid;gap:4px;padding:16px 20px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface);text-align:left;color:var(--text);font:inherit;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.inv-option strong{font-size:var(--fs-body)}.inv-option span{color:var(--secondary);font-size:var(--fs-meta)}.inv-option:hover{background:var(--accent-soft);border-color:var(--accent-ink);transform:translateY(-1px)}.inv-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.inv-step label small{color:var(--secondary);font-size:var(--fs-label)}.inv-check{display:flex;align-items:center;gap:12px;min-height:44px}.inv-check input{width:20px;min-height:20px;height:20px;padding:0;flex:none}.inv-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.inv-help{margin:0 0 16px;color:var(--secondary);font-size:var(--fs-meta)}.inv-panel{display:grid;gap:16px}.inv-block{display:grid;gap:8px;padding:16px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface)}.inv-block>*{margin:0}.inv-label{font-size:var(--fs-body);font-weight:600}.inv-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--secondary);font-size:var(--fs-label)}.inv-copyrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.inv-copyrow input{min-height:44px;padding:8px 12px;font-size:var(--fs-meta)}.inv-share{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.inv-demo{margin:0;color:var(--secondary);font-size:var(--fs-label)}.inv-done{margin-top:20px}.modal-body>.inv-done:last-child{display:flex;margin-left:auto;min-width:160px;justify-content:center}.inv-step>.inv-done:last-child{display:flex;margin-left:auto;min-width:160px;justify-content:center}.jn-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;gap:16px;padding:16px;background:var(--page)}.jn-page main.jn-card{min-height:0;margin:0;max-width:none}.jn-page .jn-head{position:static;height:auto;padding:0;border:0;background:none;z-index:auto}.jn-head{display:flex;align-items:center;justify-content:space-between;width:min(520px,100%)}.jn-head .brand-word{font-size:20px;font-weight:700}.jn-head select.language-select{width:88px;min-height:44px;margin:0}.jn-card{width:min(520px,100%);padding:28px;border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--edge);animation:inv-in .2s ease-out}.jn-error{margin:12px 0 0;color:#9b1c1c}.jn-card h1{margin:0 0 8px;font-size:26px;line-height:1.2}.jn-lead{margin:0 0 8px;color:var(--secondary)}.jn-card fieldset{margin:20px 0 0;padding:0;border:0;min-width:0}.jn-card legend{margin-bottom:8px;padding:0;font-size:13px}.jn-seg{display:flex;flex-wrap:wrap;gap:8px}.jn-seg legend{width:100%}.jn-seg-opt{position:relative;display:inline-grid;margin:0}.jn-seg-opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;min-height:0;cursor:pointer}.jn-seg-opt span{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid var(--hairline);border-radius:var(--radius-chip);font-weight:600;transition:background .2s,border-color .2s}.jn-seg-opt input:checked+span{background:var(--accent-soft);border-color:var(--accent-ink);color:var(--accent-ink)}.jn-seg-opt input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.jn-parent label{margin:12px 0 0}.jn-submit{width:100%;margin-top:28px}.jn-demo{margin:0;color:var(--secondary);font-size:var(--fs-label);text-align:center}@media(max-width:640px){.inv-two{grid-template-columns:minmax(0,1fr)}.inv-actions .button{flex:1}.jn-card{padding:20px}.inv-step>.inv-done:last-child{width:100%;margin-left:0}}@media(prefers-reduced-motion:reduce){.inv-step,.jn-card{animation:none}.inv-act,.inv-option,.jn-seg-opt span{transition:none}.inv-option:hover{transform:none}}.sp-setup{grid-column:1 / -1}.sp-setup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.sp-setup-head h2{margin:0}.sp-setup .sp-muted{margin:0 0 12px}.sp-setup-list{list-style:none;margin:0;padding:0;display:grid}.sp-setup-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:6px 0;transition:opacity .2s}.sp-setup-row+.sp-setup-row{border-top:1px solid var(--hairline)}.sp-setup-dot{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:2px solid var(--hairline);border-radius:50%;color:var(--c-green-ink);font-size:14px;font-weight:700;transition:background .2s,border-color .2s}.sp-setup-row.is-done .sp-setup-dot{background:var(--c-green-soft);border-color:var(--c-green-ink)}.sp-setup-row.is-done .sp-setup-label{color:var(--secondary)}.sp-setup-label{font-weight:600}.sp-setup-row .button{white-space:nowrap}.sp-hw-row{grid-template-columns:88px minmax(0,1fr) auto}.sp-hw-row>.eyebrow{white-space:nowrap}.sp-hw-main>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-hw-row .button{justify-self:end}@media(max-width:640px){.sp-hw-row{grid-template-columns:minmax(0,1fr);gap:4px}.sp-hw-row>.button{justify-self:stretch;justify-content:center;min-height:44px;margin-top:4px}.sp-hw-main>strong,.sp-hw-main>span{white-space:normal}}@media(prefers-reduced-motion:reduce){.sp-setup-row,.sp-setup-dot{transition:none}}.lg-wait{display:grid;gap:12px;justify-items:start;padding:24px 16px}.lg-work{list-style:none;margin:0;padding:0;display:grid;gap:8px}.lg-work li a{display:grid;gap:2px;min-height:44px;padding:12px;border:1px solid var(--border);border-radius:var(--control-radius);color:inherit;text-decoration:none}.lg-work li a:hover{border-color:var(--primary)}.lg-player{max-width:760px;margin:0 auto;padding:0 16px 24px}.lg-work span{color:var(--secondary);font-size:.875rem}
