.tg-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.tg-head .ls-sub{max-width:560px;margin-top:4px}.tg-back{color:var(--ls-muted);align-items:center;gap:4px;margin-bottom:10px;font-size:14px;text-decoration:none;display:inline-flex}.tg-back:hover{color:var(--ls-ink)}.tg-filters{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.tg-filter{border:1px solid var(--ls-line);background:var(--ls-card);height:36px;color:var(--ls-muted);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex}.tg-filter:hover{color:var(--ls-ink)}.tg-filter.is-on{background:var(--ls-red-soft);border-color:var(--ls-red-line);color:var(--ls-red);font-weight:600}.tg-filter b{box-sizing:border-box;background:var(--ls-soft);border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:600;display:inline-grid}.tg-filter.is-on b{background:#fff}.tg-filter-student{background:var(--ls-blue-soft);height:36px;color:var(--ls-blue);border-radius:999px;align-items:center;gap:6px;padding:0 6px 0 12px;font-size:14px;font-weight:500;display:inline-flex}.tg-filter-student a{width:26px;height:26px;color:inherit;border-radius:999px;place-items:center;text-decoration:none;display:inline-grid}.tg-list{overflow:hidden}.tg-row{color:inherit;grid-template-columns:minmax(0,1.6fr) minmax(150px,1fr) 150px 104px 20px;align-items:center;gap:18px;padding:14px 18px;text-decoration:none;display:grid}.tg-row+.tg-row{border-top:1px solid var(--ls-line)}.tg-row:hover{background:color-mix(in oklab, var(--ls-soft) 55%, transparent)}.tg-who{align-items:center;gap:12px;min-width:0;display:flex}.tg-who-text{min-width:0}.tg-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;line-height:20px;overflow:hidden}.tg-meta{color:var(--ls-muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;line-height:18px;overflow:hidden}.tg-prog{align-items:center;gap:10px;display:flex}.tg-bar{background:var(--ls-soft);border-radius:999px;flex:1;min-width:60px;height:6px;overflow:hidden}.tg-bar>span{background:var(--ls-red);border-radius:999px;height:100%;transition:width .3s;display:block}.tg-bar.is-done>span{background:var(--ls-green)}.tg-prog-n{color:var(--ls-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.tg-due{color:var(--ls-muted);white-space:nowrap;font-size:13px}.tg-due.is-soon{color:var(--ls-amber);font-weight:600}.tg-due.is-late{color:var(--ls-red);font-weight:600}.tg-chev{color:var(--ls-faint)}@media (max-width:860px){.tg-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who status""prog prog""due due";gap:8px 12px;padding:14px 16px}.tg-row>.tg-who{grid-area:who}.tg-row>.tg-prog{grid-area:prog;padding-left:52px}.tg-row>.tg-due{grid-area:due;margin-top:-4px;padding-left:52px}.tg-row>.tg-status{grid-area:status;align-self:start}.tg-row>.tg-chev{display:none}}.tg-empty{text-align:center;justify-items:center;gap:10px;padding:48px 20px;display:grid}.tg-empty-ico{background:var(--ls-red-soft);width:56px;height:56px;color:var(--ls-red);border-radius:18px;place-items:center;display:grid}.tg-empty-ico .ls-ms{font-size:28px}.tg-empty p{max-width:380px;margin:0}.tg-create{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}.tg-col{gap:16px;min-width:0;display:grid}.tg-side{gap:16px;display:grid;position:sticky;top:24px}@media (max-width:1100px){.tg-create{grid-template-columns:minmax(0,1fr)}.tg-side{position:static}}.tg-step{gap:14px;padding:20px;display:grid}.tg-step-head{align-items:center;gap:10px;display:flex}.tg-step-n{background:var(--ls-red-soft);width:26px;height:26px;color:var(--ls-red);border-radius:999px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.tg-step-head .ls-sub{margin-left:auto}.tg-students{flex-wrap:wrap;gap:8px;display:flex}.tg-student{border:1px solid var(--ls-line);background:var(--ls-card);height:52px;font:inherit;color:var(--ls-ink);cursor:pointer;text-align:left;border-radius:999px;align-items:center;gap:10px;padding:0 14px 0 6px;display:inline-flex}.tg-student:hover{background:var(--ls-soft)}.tg-student.is-on{background:var(--ls-red-soft);border-color:var(--ls-red-line)}.tg-student-name{font-size:14px;font-weight:600;line-height:18px;display:block}.tg-student-sub{color:var(--ls-muted);font-size:12px;line-height:16px;display:block}.tg-student .tg-tick{border:1.5px solid var(--ls-line);color:#fff;border-radius:999px;place-items:center;width:20px;height:20px;margin-left:4px;display:grid}.tg-student.is-on .tg-tick{background:var(--ls-red);border-color:var(--ls-red)}.tg-student .tg-tick .ls-ms{font-size:14px}.tg-prompt{border:1px solid var(--ls-line);background:var(--ls-card);border-radius:18px;position:relative;box-shadow:0 1px 2px #1b1c1908}.tg-prompt:focus-within{border-color:var(--ls-red);outline:3px solid var(--ls-red-soft)}.tg-prompt textarea{box-sizing:border-box;resize:none;width:100%;min-height:92px;font:inherit;color:var(--ls-ink);background:0 0;border:0;outline:none;padding:16px 16px 4px;font-size:16px;line-height:24px;display:block}.tg-prompt textarea::placeholder{color:var(--ls-faint)}.tg-prompt-foot{justify-content:space-between;align-items:center;gap:10px;padding:8px 10px 10px 16px;display:flex}.tg-suggest{flex-wrap:wrap;gap:8px;display:flex}.tg-suggest button{border:1px solid var(--ls-line);background:var(--ls-card);height:34px;color:var(--ls-ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.tg-suggest button:hover{background:var(--ls-soft)}.tg-suggest .ls-ms{color:var(--ls-red);font-size:16px}.tg-manual{font:inherit;color:var(--ls-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.tg-manual:hover{color:var(--ls-ink)}.tg-items{display:grid}.tg-item{grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 0;display:grid}.tg-item+.tg-item{border-top:1px solid var(--ls-line)}.tg-ico{background:var(--ls-soft);width:40px;height:40px;color:var(--ls-ink);border-radius:12px;place-items:center;display:grid}.tg-ico.is-locked{background:var(--ls-amber-soft);color:var(--ls-amber)}.tg-item-label{overflow-wrap:anywhere;font-size:15px;font-weight:500;line-height:20px}.tg-item-sub{color:var(--ls-muted);margin-top:2px;font-size:13px;line-height:18px}.tg-lock{color:var(--ls-amber);align-items:center;gap:4px;margin-top:3px;font-size:13px;line-height:18px;display:flex}.tg-lock .ls-ms{font-size:15px}.tg-words{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.tg-words span{background:var(--ls-soft);border-radius:8px;padding:1px 8px;font-size:13px}.tg-stepper{border:1px solid var(--ls-line);border-radius:999px;align-items:center;height:36px;display:inline-flex}.tg-stepper button{width:34px;height:34px;color:var(--ls-ink);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.tg-stepper button:hover:not(:disabled){background:var(--ls-soft)}.tg-stepper button:disabled{color:var(--ls-faint);cursor:default}.tg-stepper output{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:64px;font-size:13px}.tg-row-acts{gap:0;display:inline-flex}.tg-icon-btn{width:34px;height:34px;color:var(--ls-muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.tg-icon-btn:hover:not(:disabled){background:var(--ls-soft);color:var(--ls-ink)}.tg-icon-btn:disabled{opacity:.3;cursor:default}.tg-icon-btn .ls-ms{font-size:19px}@media (max-width:640px){.tg-item{grid-template-columns:40px minmax(0,1fr);grid-template-areas:"ico main"".ctrl";gap:8px 12px}.tg-item>.tg-ico{grid-area:ico;align-self:start}.tg-item>.tg-item-main{grid-area:main}.tg-item>.tg-ctrl{grid-area:ctrl;justify-content:space-between;align-items:center;gap:8px;display:flex}}@media (min-width:641px){.tg-ctrl{display:contents}}.tg-add{justify-self:start;margin-top:4px}.tg-gen-note{background:var(--ls-soft);color:var(--ls-muted);border-radius:12px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;line-height:18px;display:flex}.tg-gen-note .ls-ms{color:var(--ls-red);font-size:18px}.tg-panel{gap:14px;padding:20px;display:grid}.tg-summary{color:var(--ls-muted);font-size:13px;line-height:19px}.tg-summary b{color:var(--ls-ink);font-weight:600}.tg-actions{gap:8px;display:grid}.tg-actions .ls-btn,.tg-actions .ls-btn-ghost{width:100%}.tg-err{color:var(--ls-red);margin:0;font-size:13px}.tg-mobile-bar{display:none}@media (max-width:1100px){.tg-side .tg-actions{display:none}.tg-mobile-bar{z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:color-mix(in oklab, var(--ls-bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--ls-line);gap:10px;margin:4px -16px 0;display:flex;position:sticky;bottom:0}.tg-mobile-bar .ls-btn{flex:1}}@media (max-width:860px){.tg-mobile-bar{bottom:calc(64px + env(safe-area-inset-bottom))}}.tg-kinds{gap:4px;max-height:min(60dvh,520px);margin:0 -8px;padding:0 8px;display:grid;overflow:auto}.tg-kind{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:14px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.tg-kind:hover{background:var(--ls-soft)}.tg-kind-name{font-size:15px;font-weight:600;line-height:20px}.tg-seg{flex-wrap:wrap;gap:6px;display:flex}.tg-seg button{border:1px solid var(--ls-line);background:var(--ls-card);min-width:44px;height:36px;font:inherit;cursor:pointer;color:var(--ls-ink);border-radius:999px;padding:0 12px;font-size:14px}.tg-seg button.is-on{background:var(--ls-red-soft);border-color:var(--ls-red-line);color:var(--ls-red);font-weight:600}.tg-chapters{border:1px solid var(--ls-line);border-radius:14px;gap:2px;max-height:280px;padding:4px;display:grid;overflow:auto}.tg-chapter{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:baseline;gap:10px;padding:9px 10px;font-size:14px;display:flex}.tg-chapter:hover{background:var(--ls-soft)}.tg-chapter.is-on{background:var(--ls-red-soft);color:var(--ls-red)}.tg-chapter b{white-space:nowrap;font-weight:600}.tg-vocab{gap:4px;display:grid}.tg-vocab-row{align-items:baseline;gap:10px;padding:6px 2px;font-size:14px;display:flex}.tg-vocab-row .ls-zh{font-size:17px}.tg-vocab-row.is-missing{color:var(--ls-amber)}.tg-field{gap:6px;display:grid}.tg-detail{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;display:grid}@media (max-width:1100px){.tg-detail{grid-template-columns:minmax(0,1fr)}}.tg-detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.tg-detail-meta{color:var(--ls-muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-size:14px;display:flex}.tg-detail-meta a{color:var(--ls-ink);align-items:center;gap:8px;font-weight:600;text-decoration:none;display:inline-flex}.tg-detail-acts{flex-wrap:wrap;gap:8px;display:flex}.tg-check{padding:6px 20px}.tg-check-row{grid-template-columns:28px 40px minmax(0,1fr);align-items:start;gap:12px;padding:14px 0;display:grid}.tg-check-row+.tg-check-row{border-top:1px solid var(--ls-line)}.tg-state{border:2px dashed var(--ls-line);box-sizing:border-box;border-radius:999px;place-items:center;width:24px;height:24px;margin-top:8px;display:grid}.tg-state.is-part{border-style:solid;border-color:var(--ls-red-line)}.tg-state.is-done{background:var(--ls-green);color:#fff;border:0}.tg-state.is-done .ls-ms{font-size:16px}.tg-check-row .tg-bar{max-width:360px;margin-top:8px}.tg-evid{color:var(--ls-muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;font-size:13px;display:flex}.tg-ring{width:112px;height:112px;margin:0 auto;position:relative}.tg-ring svg{transform:rotate(-90deg)}.tg-ring-label{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.tg-ring-label b{font-family:var(--font-manrope), sans-serif;font-size:24px;line-height:28px}.tg-note{background:var(--ls-soft);white-space:pre-wrap;border-radius:14px;padding:12px 14px;font-size:14px;line-height:20px}.tg-kv{gap:10px;font-size:14px;display:grid}.tg-kv>div{justify-content:space-between;gap:12px;display:flex}.tg-kv span:first-child{color:var(--ls-muted)}.tg-kv span:last-child{text-align:right}@media (max-width:1100px){.tg-detail>aside{order:-1;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:start}}@media (min-width:641px) and (max-width:1100px){.tg-detail .tg-summary-panel{grid-template-columns:112px minmax(0,1fr);align-items:center;column-gap:20px}.tg-detail .tg-summary-panel>.ls-btn-quiet{grid-column:2;justify-self:start}}
