.th-root{--th-ink:#293a50;--th-muted:#8493a7;--th-line:rgba(129,153,187,.15);--th-paper:rgba(255,255,255,.69);--th-soft:rgba(122,156,204,.055);color:var(--th-ink);font-size:13px;padding-bottom:24px}.th-root button,.th-root input,.th-root select{font:inherit;box-sizing:border-box}.th-root button{cursor:pointer}.th-root button:disabled{opacity:.45;cursor:default}.th-root .th-btn{border-radius:8px;padding:9px 14px;font-size:12px;border:1px solid var(--th-line);background:var(--th-paper);color:var(--th-ink);box-shadow:none;min-width:0}.th-root .th-btn.primary{background:#4c79c8;color:white;border:1px solid #4c79c8;box-shadow:0 4px 12px #466fac12}.th-root .th-btn.ghost{border:0;background:transparent;color:#6f89b1;padding:6px 8px}.th-root button:focus-visible,.th-root input:focus-visible,.th-root select:focus-visible{outline:2px solid #89ace5;outline-offset:3px}.th-hero{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:12px 0 24px}.th-hero h1{font-size:28px;font-weight:620;letter-spacing:-.5px;margin:0 0 9px}.th-hero p{margin:0;color:var(--th-muted);font-size:12px;line-height:1.9}.th-hero-actions{display:flex;gap:15px;align-items:center;font-size:10px;color:var(--th-muted)}.th-hero-actions .primary{padding:11px 20px}.th-top-tabs{display:flex;gap:5px}.th-section-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 0 15px}.th-section-head h2{font-size:17px;font-weight:550;margin:6px 0 0}.th-section-head>span{color:var(--th-muted);font-size:10px}.th-eyebrow{font-size:8px;letter-spacing:1.6px;color:#98a9bf}.th-overview{padding:20px 24px 0;background:var(--th-paper);border:1px solid var(--th-line);border-radius:14px;backdrop-filter:blur(16px)}.th-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;padding:6px 0 22px;border-bottom:1px solid var(--th-line)}.th-metric>span{display:flex;gap:7px;align-items:center;color:var(--th-muted);font-size:11px}.th-metric svg{height:14px;width:14px;fill:none;stroke:#90a6c2;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.th-metric strong{font-size:29px;font-weight:500;line-height:1.3;display:block;margin:10px 0 5px;font-variant-numeric:tabular-nums}.th-metric small{font-size:9px;color:var(--th-muted);line-height:1.7}.th-charts{display:grid;grid-template-columns:1.08fr 1fr 1.14fr;padding:21px 0 19px;gap:25px}.th-charts>section{min-width:0;position:relative}.th-charts>section+section{padding-left:25px;border-left:1px solid var(--th-line)}.th-charts h3{font-size:12px;font-weight:550;margin:0 0 17px}.th-charts section>p{font-size:9px;color:var(--th-muted);line-height:1.85;margin:15px 0 0}.th-progress-body{display:flex;align-items:center;gap:21px;min-height:127px}.th-donut{width:120px;height:120px;flex-shrink:0;border-radius:50%;background:conic-gradient(from 0deg,#7a9fd7 0 var(--th-progress),rgba(144,169,205,.11) var(--th-progress) 100%);display:grid;place-items:center;position:relative}.th-donut:before{content:'';position:absolute;inset:10px;border-radius:50%;background:#fafcff}.th-donut>div{position:relative;text-align:center}.th-donut strong{display:block;font-size:26px;font-weight:500;color:#537cac;font-variant-numeric:tabular-nums}.th-donut small{display:block;font-size:8px;color:var(--th-muted);margin-top:7px}.th-progress-legend{display:flex;flex-direction:column;gap:12px;font-size:10px;flex:1}.th-progress-legend span{display:flex;gap:7px;align-items:center;color:var(--th-muted)}.th-progress-legend i{display:block;width:6px;height:6px;border-radius:50%;background:#dae4f1}.th-progress-legend i.done{background:#7a9fd7}.th-progress-legend i.ongoing{background:#c1d3ed}.th-progress-legend b{margin-left:auto;color:var(--th-ink);font-weight:500}.th-bar-list{min-height:125px;display:flex;flex-direction:column;justify-content:center;gap:17px;max-height:170px;overflow:auto;padding-right:5px}.th-root .th-chart-row{border:0;background:transparent;display:grid;grid-template-columns:83px minmax(30px,1fr) 28px;gap:10px;align-items:center;text-align:left;font-size:10px;padding:4px 0;color:var(--th-muted)}.th-chart-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.th-chart-row>i{height:10px;background:var(--th-soft);border-radius:3px;display:block;overflow:hidden}.th-chart-row>i>b{display:block;height:100%;background:linear-gradient(90deg,#8aabe0,#c0d0eb);border-radius:3px}.th-chart-row>strong{font-size:11px;font-weight:500;color:var(--th-ink);white-space:nowrap}.th-chart-row small{font-size:8px;color:var(--th-muted);font-weight:400}.th-chart-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.th-chart-head strong{font-size:22px;font-weight:500;color:#7395c7}.th-participation-track{height:8px;border-radius:4px;background:rgba(136,166,211,.1);overflow:hidden}.th-participation-track i{display:block;height:100%;background:linear-gradient(90deg,#789ed4,#b6cbe7);border-radius:4px}.th-participation-numbers{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:var(--th-muted);margin:11px 0 17px}.th-participation-numbers b{font-weight:500;color:var(--th-ink)}.th-class-participation{max-height:100px;overflow:auto}.th-class-participation>div{display:flex;align-items:center;gap:14px;padding:6px 0;color:var(--th-muted);font-size:9px}.th-class-participation span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.th-class-participation small{font-size:8px}.th-class-participation strong{font-size:10px;font-weight:500;color:var(--th-ink)}.th-review-strip{border-top:1px solid var(--th-line);display:flex;align-items:center;gap:18px;padding:13px 0;font-size:9px;color:var(--th-muted);flex-wrap:wrap}.th-review-strip b{font-size:10px;color:#6f8db8;font-weight:500}.th-review-strip small{font-size:9px}.th-review-strip .th-pending-work{margin-left:auto}.th-projects{margin-top:27px}.th-projects .th-section-head h2 small{font-size:10px;font-weight:400;color:var(--th-muted);margin-left:8px}.th-list-controls{display:flex;gap:8px;align-items:center}.th-root .th-list-controls select,.th-search{background:var(--th-paper);border:1px solid var(--th-line);border-radius:7px;font-size:11px;color:var(--th-muted);padding:8px 10px;box-sizing:border-box}.th-search{display:flex;align-items:center;gap:7px}.th-search svg{width:13px;height:13px;fill:none;stroke:#98a9bd;stroke-width:1.4}.th-search input{background:transparent;border:0;outline:0;font-size:11px;color:var(--th-ink);width:160px;padding:0;min-width:0}.th-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.th-project-card{border:1px solid var(--th-line);border-radius:13px;background:var(--th-paper);padding:19px 21px 0;min-width:0;transition:box-shadow .18s,border-color .18s,transform .18s;backdrop-filter:blur(12px);display:flex;flex-direction:column}.th-project-card:hover{box-shadow:0 7px 24px #708ca50c;border-color:rgba(108,144,198,.28);transform:translateY(-2px)}.th-card-top{display:flex;align-items:center;gap:8px;margin-bottom:17px}.th-card-icon{width:29px;height:29px;border-radius:8px;background:rgba(114,151,208,.085);display:grid;place-items:center;color:#7696c0}.th-card-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.course-card .th-card-icon{background:rgba(145,157,193,.08);color:#859bc1}.th-kind{font-size:9px;color:var(--th-muted)}.th-status{font-size:9px;border-radius:5px;padding:3px 7px;background:rgba(129,154,189,.055);color:var(--th-muted);display:inline-block;font-weight:400;white-space:nowrap}.th-card-top .th-status{margin-left:auto}.th-status.running{background:rgba(116,153,211,.075);color:#6d8dbc}.th-root .th-card-title{font-size:18px;font-weight:550;letter-spacing:-.3px;background:transparent;border:0;text-align:left;padding:0;color:var(--th-ink);line-height:1.6;overflow-wrap:anywhere}.th-card-context{font-size:10px;color:var(--th-muted);margin:8px 0 16px;line-height:1.8}.th-card-fields{display:grid;grid-template-columns:1fr 1.35fr;gap:14px;padding:0 0 17px}.th-card-fields>span{display:flex;flex-direction:column;gap:6px;font-size:9px;color:#9aa9bc;min-width:0}.th-card-fields strong{font-weight:400;font-size:10px;color:var(--th-muted);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.th-card-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px 0 16px;border-top:1px solid var(--th-line)}.th-card-counts b{display:block;font-size:18px;font-weight:500;color:#506883;font-variant-numeric:tabular-nums}.th-card-counts small{display:block;font-size:8px;color:var(--th-muted);margin-top:5px}.th-card-progress>div{display:flex;justify-content:space-between;gap:12px;font-size:9px;color:var(--th-muted);margin-bottom:8px}.th-card-progress strong{font-weight:400;font-size:9px}.th-card-progress>i{display:block;height:4px;background:rgba(133,163,205,.1);border-radius:3px;overflow:hidden}.th-card-progress>i>b{display:block;height:100%;background:#93b0dd;border-radius:3px}.th-course-names{font-size:9px;color:var(--th-muted);line-height:1.8;margin:13px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:32px}.th-next{font-size:9px;color:var(--th-muted);line-height:1.9;margin:0 0 15px;display:flex;flex-wrap:wrap;gap:0 6px}.th-next small{font-size:8px;color:#9dabc0}.th-next span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:100px;color:#6e86a8}.th-project-card footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--th-line);padding:9px 0;margin-top:auto}.th-project-card footer .th-btn{font-size:10px;padding:6px 0}.th-empty{grid-column:1/-1;text-align:center;padding:43px 15px;background:var(--th-paper);border:1px dashed var(--th-line);border-radius:13px;color:var(--th-muted)}.th-empty>span svg{width:32px;height:32px;fill:none;stroke:#9fb3ce;stroke-width:1}.th-empty h2{font-size:17px;font-weight:500;color:var(--th-ink)}.th-empty p{font-size:11px;line-height:1.9}.th-empty .th-btn{margin-top:12px}.th-notice{font-size:11px;color:#6f8eb7;border-radius:7px;background:var(--th-soft);padding:10px 13px;line-height:1.9}.th-notice.error{color:#b67777}.th-muted{color:var(--th-muted);font-size:10px;line-height:1.9}.th-crumb{display:flex;align-items:center;gap:9px;color:var(--th-muted);font-size:10px;margin:4px 0 17px}.th-crumb .th-btn{font-size:10px;padding:0}.th-course-overview{border:1px solid var(--th-line);background:var(--th-paper);border-radius:13px;padding:21px 24px;margin:0 0 25px}.th-course-info{display:grid;grid-template-columns:1.65fr 1fr;gap:45px;padding:20px 0 3px}.th-course-info h2{font-size:15px;font-weight:550;margin:0 0 14px}.th-course-info dl{margin:0}.th-course-info dl>div{display:grid;grid-template-columns:90px 1fr;gap:15px;font-size:11px;border-bottom:1px solid var(--th-line);padding:10px 0}.th-course-info dt{color:var(--th-muted)}.th-course-info dd{margin:0;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.th-course-info .th-next{margin:20px 0}.th-course-info section>.th-btn{margin-top:14px}.th-lesson-list{display:flex;flex-direction:column;gap:12px}.th-lesson-list article{border:1px solid var(--th-line);border-radius:11px;background:var(--th-paper);display:grid;grid-template-columns:75px 1fr auto;gap:20px;padding:18px 22px;align-items:center}.th-lesson-date{border-right:1px solid var(--th-line);min-height:58px;display:flex;flex-direction:column;justify-content:center;gap:7px}.th-lesson-date strong{font-size:16px;font-weight:500}.th-lesson-date small,.th-lesson-list article>div>small{font-size:9px;color:var(--th-muted)}.th-lesson-list h3{font-size:15px;font-weight:500;margin:7px 0}.th-lesson-list p{font-size:10px;color:var(--th-muted);margin:0 0 7px}.th-form-help,.th-form-context{font-size:11px;color:#8598b2;line-height:1.9;margin:7px 0}.th-form-error{font-size:12px;line-height:1.8;color:#b07070;background:#bc74740a;border-radius:7px;padding:9px 12px}.th-create-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.th-create-options button{background:rgba(241,246,253,.65);border:1px solid rgba(134,162,203,.18);border-radius:13px;text-align:left;padding:22px;cursor:pointer;color:#456285}.th-create-options button:hover{background:#eaf2ff}.th-create-options svg{width:27px;height:27px;fill:none;stroke:#80a0ce;stroke-width:1.4;margin-bottom:17px}.th-create-options strong{display:block;font-size:18px;font-weight:550;margin-bottom:9px}.th-create-options span{display:block;font-size:11px;color:#8799b2;line-height:1.9}
body.night .th-root{--th-ink:#d8e2f2;--th-muted:#8fa1bc;--th-line:rgba(156,180,213,.15);--th-paper:rgba(29,40,59,.7);--th-soft:rgba(167,190,223,.055);color-scheme:dark}body.night .th-donut:before{background:#202d42}body.night .th-donut strong,body.night .th-card-counts b{color:#a8bee2}body.night .th-root .th-btn.primary{background:#527ecb}body.night .th-create-options button{background:#29384e;color:#c1d4ee;border-color:#809cc728}body.night .th-create-options button:hover{background:#30425d}
@media(max-width:1200px){.th-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.th-charts{gap:18px;grid-template-columns:1.05fr 1fr 1.05fr}.th-charts>section+section{padding-left:18px}.th-progress-body{gap:14px}.th-donut{width:100px;height:100px}.th-donut strong{font-size:23px}.th-root .th-chart-row{grid-template-columns:66px minmax(20px,1fr) 28px;gap:7px}.th-list-controls{gap:6px}.th-search input{width:145px}}
@media(max-width:900px){.th-charts{grid-template-columns:1fr 1fr}.th-charts>section:nth-child(3){border-left:0;padding:18px 0 0;border-top:1px solid var(--th-line);grid-column:1/-1}.th-participation-chart .th-class-participation{display:flex;gap:25px;max-height:none;flex-wrap:wrap}.th-participation-chart .th-class-participation>div{min-width:180px}.th-participation-numbers{margin-bottom:8px}.th-projects .th-section-head{align-items:flex-start;flex-direction:column;gap:13px}.th-list-controls{width:100%}.th-search{flex:1;min-width:0}.th-search input{width:100%}.th-hero-actions>span{display:none}.th-overview{padding:18px 19px 0}.th-review-strip{gap:12px}.th-review-strip .th-pending-work{margin-left:0}.th-course-info{gap:26px}}
@media(max-width:620px){.th-hero{padding:9px 0 19px;align-items:flex-start;gap:14px}.th-hero h1{font-size:24px}.th-hero p{font-size:11px}.th-hero-actions .primary{padding:9px 12px;white-space:nowrap}.th-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:21px 15px}.th-metric strong{font-size:27px}.th-project-grid{grid-template-columns:1fr;gap:14px}.th-charts{grid-template-columns:1fr;gap:20px}.th-charts>section+section{border-left:0;padding:20px 0 0;border-top:1px solid var(--th-line)}.th-charts>section:nth-child(3){grid-column:auto}.th-progress-body{gap:28px;justify-content:center;min-height:130px}.th-donut{width:124px;height:124px}.th-progress-legend{max-width:115px}.th-charts section>p{font-size:9px}.th-bar-list{min-height:0;gap:10px}.th-root .th-chart-row{grid-template-columns:97px minmax(30px,1fr) 35px;font-size:11px}.th-participation-chart .th-class-participation{display:block}.th-participation-chart .th-class-participation>div{min-width:0}.th-list-controls{flex-wrap:wrap}.th-search{flex:1 1 100%}.th-root .th-list-controls select{flex:1;min-width:0}.th-card-title{font-size:19px}.th-project-card{padding:18px 20px 0}.th-overview{padding:17px 17px 0}.th-section-head{gap:10px}.th-section-head h2{font-size:16px}.th-review-strip{gap:11px;font-size:9px}.th-hero-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}.th-course-detail .th-hero{flex-direction:column}.th-course-info{grid-template-columns:1fr;gap:25px}.th-course-overview{padding:18px}.th-course-info dl>div{grid-template-columns:78px 1fr}.th-lesson-list article{grid-template-columns:62px 1fr;gap:15px;padding:16px}.th-lesson-list article>.th-btn{grid-column:2;justify-self:start}.th-create-options{grid-template-columns:1fr}.th-create-options button{padding:18px}.th-create-options svg{margin-bottom:10px}.th-crumb{flex-wrap:wrap}}
#editor-form[data-kind="th-choice"] footer button[type="submit"]{display:none}
.th-excluded{display:block;font-size:8px;color:var(--th-muted);margin-top:10px}
