.motor-focused,.motor-report-shell{--bg:#eef3f8;--card:#fff;--ink:#1e293b;--muted:#64748b;--border:#cbd5e1;--soft:#f1f5f9;background:var(--bg);min-height:100vh;color:var(--ink)}.motor-focused.dark,.motor-report-shell.dark{--bg:#0c1726;--card:#142236;--ink:#eaf3fc;--muted:#9bb0c5;--border:#2c4055;--soft:#1a2b3f}.motor-platform-top{height:56px}.motor-platform-top b{font-size:13px}.motor-platform-top span{font-size:10px}.motor-platform-top button{min-height:32px;font-size:11px}.motor-step-banner{color:#fff;background:#0b315a;border-radius:12px;align-items:center;gap:0;height:72px;margin:14px 20px;padding:10px 18px;display:flex}.motor-step-banner>b{border-right:1px solid #ffffff45;margin-right:17px;padding-right:17px;font-size:28px}.motor-step-banner h2{margin:0 0 5px;font-size:17px}.motor-step-banner h2 span{color:#c8ddf3;font-weight:400}.motor-step-banner p{color:#d5e5f5;margin:0;font-size:14px}.motor-focused-layout{grid-template-columns:220px minmax(620px,1fr) 300px;gap:14px;min-width:1160px;height:calc(100vh - 156px);padding:0 20px 14px;display:grid}.motor-focused-steps,.motor-focused-info,.motor-focused-bench{background:var(--card);border:1px solid var(--border);border-radius:12px;min-height:0}.motor-focused-steps,.motor-focused-info{padding:14px;overflow:auto}.motor-focused-steps h3,.motor-focused-info h3{color:#0b4f8c;margin:5px 0 12px;font-size:14px}.dark .motor-focused-steps h3,.dark .motor-focused-info h3{color:#8bc4f6}.motor-focused-steps button{text-align:left;width:100%;color:var(--muted);background:0 0;border:0;border-left:3px solid #0000;border-radius:3px;align-items:center;gap:9px;padding:8px 5px;font-size:12px;display:flex}.motor-focused-steps button i{border:1px solid var(--border);border-radius:50%;flex:none;place-items:center;width:23px;height:23px;font-style:normal;display:grid}.motor-focused-steps button span{font-weight:650}.motor-focused-steps button small{color:#94a3b8;margin-top:3px;font-size:10px;font-weight:400;display:block}.motor-focused-steps button.active{color:#0b4f8c;background:#dceeff;border-color:#1976d2}.dark .motor-focused-steps button.active{color:#b9dcfb;background:#1b3d5e}.motor-focused-steps button.done{color:#2e7d32}.motor-focused-bench{grid-template-rows:58px minmax(0,1fr) 52px;display:grid;overflow:hidden}.motor-bench-head,.motor-bench-footer{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:0 14px;display:flex}.motor-bench-head>div:first-child{flex-direction:column;display:flex}.motor-bench-head span{color:#1976d2;font-size:11px}.motor-bench-head b{margin-top:3px;font-size:14px}.motor-bench-head button,.motor-bench-footer button{border:1px solid var(--border);background:var(--card);color:var(--ink);border-radius:8px;margin-left:6px;padding:8px 11px;font-size:12px;font-weight:650}.motor-board-scroll{overscroll-behavior:contain;background:#fff;min-height:0;overflow:auto}.dark .motor-board-scroll{background:#111e2e}.motor-board-canvas{background:#fff;min-width:620px;min-height:1120px;position:relative}.dark .motor-board-canvas{background:#111e2e}.motor-device{z-index:4;text-align:center;position:absolute}.motor-device>span{color:#fff;background:#0b315ae8;border-radius:6px;width:max-content;max-width:190px;margin:0 auto 5px;padding:5px 8px;font-size:11px;font-weight:700;display:block}.motor-device-image{width:100%;position:relative}.motor-device-image>img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.motor-device.running img{animation:.13s linear infinite vibrate}.motor-device.power{width:94px;top:25px;left:calc(22% + 5px)}.motor-device.qf{width:101px;top:275px;left:calc(21.5% + 5px)}.motor-device.km{width:115px;top:480px;left:calc(20.5% + 6px)}.motor-device.motor{width:189px;top:730px;left:calc(15% + 10px)}.motor-device.pe{width:189px;top:1000px;left:calc(15% + 10px)}.motor-device.sbstart{width:112px;top:390px;left:calc(67% + 16px)}.motor-device.nline{width:50px;top:650px;left:calc(72% + 3px)}.motor-lab-4 .motor-device.sbstop{width:110px;top:250px;left:calc(67% + 16px)}.motor-lab-4 .motor-device.sbstart{width:112px;top:490px;left:calc(67% + 16px)}.motor-lab-4 .motor-device.nline{width:50px;top:740px;left:calc(72% + 3px)}.motor-device-image>button{color:#075a9f;z-index:8;background:0 0;border:0;width:34px;height:34px;padding:0;font-size:9px;font-weight:800;position:absolute;transform:translate(-50%,-50%)}.motor-device-image>button i{background:#1476c9cc;border:2px solid #fff;border-radius:50%;width:13px;height:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #075da8}.motor-device-image>button small{white-space:nowrap;color:#075a9f;background:#ffffffdf;border-radius:4px;padding:1px 3px;font-size:9px;position:absolute;top:25px;left:50%;transform:translate(-50%)}.dark .motor-device-image>button small{color:#9fd1ff;background:#142236e8}.motor-device-image>button:hover i,.motor-device-image>button.selected i{background:#f59e0b;box-shadow:0 0 0 5px #f59e0b33}.motor-wire-layer{z-index:6;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.motor-wire-layer path{fill:none;stroke-width:4.5px;filter:drop-shadow(0 2px 2px #0004);pointer-events:stroke;cursor:pointer;transition:stroke-width .15s,filter .15s}.motor-wire-layer path:hover{stroke-width:8px;filter:drop-shadow(0 0 4px #fff)}.motor-wire-layer path.wrong{stroke-dasharray:6 5}.motor-wire-layer path.pending{stroke:#1976d2;stroke-dasharray:7 6;opacity:.8;pointer-events:none}.motor-wire-layer path.live{stroke-dasharray:9 5;animation:.8s linear infinite flow}.motor-axis{z-index:7;border:3px solid #1976d244;border-radius:50%;width:38px;height:38px;position:absolute;top:830px;left:15%}.motor-axis.active{border-top-color:#159fe7;animation:.7s linear infinite spin}.motor-bench-footer{border-top:1px solid var(--border);border-bottom:0;justify-content:flex-start;gap:7px}.motor-bench-footer span{background:var(--soft);border-radius:8px;padding:6px 8px;font-size:11px}.motor-bench-footer span.on{color:#12875d;background:#def6eb}.motor-bench-footer button{margin-left:auto}.motor-focused-info>span{letter-spacing:.14em;color:#1976d2;font-size:11px}.motor-focused-info>h2{margin:8px 0 16px;font-size:18px;line-height:1.4}.motor-info-block{border-top:1px solid var(--border);padding:11px 0}.motor-info-block h3{color:var(--ink);margin:0 0 7px;font-size:13px}.motor-info-block p,.motor-info-block li{color:var(--muted);margin:0;font-size:12px;line-height:1.65}.motor-info-block ol{margin:0;padding-left:20px}.motor-step-action,.motor-submit{border:0;border-radius:8px;width:100%;min-height:40px;margin-top:10px;font-size:13px}.motor-submit{box-shadow:0 8px 20px #1677d233;background:#1677d2!important}.motor-record{background:var(--soft);border-radius:9px;margin-top:12px;padding:12px}.motor-record h3{margin:0 0 8px;font-size:13px}.motor-record p{color:var(--muted);justify-content:space-between;margin:6px 0;font-size:12px;display:flex}.motor-record b{color:var(--ink)}.motor-feedback{z-index:90;color:#fff;background:#ed8b00;border:0;border-radius:10px;width:min(500px,80vw);padding:14px 18px;font-size:13px;font-weight:700;position:fixed;top:145px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0b1f3a50}.motor-diagram{background:var(--card,#fff);width:min(1050px,94vw);height:min(86vh,850px);color:var(--ink,#1e293b);border-radius:16px;grid-template-rows:auto auto auto 1fr;padding:24px;display:grid;position:relative}.motor-diagram>span{letter-spacing:.14em;color:#1976d2;font-size:11px}.motor-diagram h2{margin:7px 0;font-size:20px}.diagram-tools{justify-content:flex-end;gap:7px;margin-bottom:8px;display:flex}.diagram-tools button{border:1px solid var(--border,#cbd5e1);background:var(--card,#fff);color:var(--ink,#1e293b);border-radius:7px;padding:7px 11px}.diagram-viewport{border:1px solid var(--border,#cbd5e1);background:#f7f8fa;border-radius:10px;place-items:center;display:grid;overflow:auto}.diagram-viewport img{transform-origin:50%;max-width:100%;max-height:100%;transition:transform .15s;display:block}.motor-result-page{text-align:center;max-width:960px;margin:0 auto;padding:54px 40px}.motor-result-mark{color:#fff;background:#2e7d32;border-radius:50%;place-items:center;width:74px;height:74px;margin:auto;font-size:40px;display:grid}.motor-result-eyebrow{color:#1976d2;letter-spacing:.12em;margin-top:18px;font-size:13px;font-weight:800;display:block}.motor-result-page h1{color:var(--ink);margin:10px 0;font-size:30px}.motor-result-summary{color:var(--muted)}.motor-result-metrics{grid-template-columns:repeat(5,1fr);gap:12px;margin:36px 0;display:grid}.motor-result-metrics div,.motor-assessment{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px}.motor-result-metrics b{color:#1976d2;font-size:25px;display:block}.motor-result-metrics span{color:var(--muted);font-size:12px}.motor-assessment{text-align:left}.motor-assessment h2{font-size:18px}.motor-assessment p{color:var(--muted);font-size:14px;line-height:1.7}.motor-result-actions{justify-content:center;gap:10px;margin-top:25px;display:flex}.motor-result-actions button{border:1px solid var(--border);background:var(--card);color:var(--ink);border-radius:8px;padding:10px 16px;font-weight:700}@media (max-width:1300px){.motor-focused-layout{grid-template-columns:200px minmax(600px,1fr) 270px}.motor-focused{overflow:auto}}.motor-focused .motor-device{z-index:7}.login-page{background:#031127!important}.login-page:after{z-index:0;background:linear-gradient(90deg,#020c1e1f 0%,#020c1e0a 58%,#020c1e7a 100%)}.login-page>.login-lightfall{z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.login-page>.login-lightfall canvas{display:block;width:100%!important;height:100%!important}.login-page>.login-brand,.login-page>.login-side{z-index:1;position:relative}.login-brand h1{letter-spacing:-.055em;text-wrap:balance;margin:24px 0 22px;font-family:Didot,"Bodoni 72",Bodoni MT,Songti SC,STSong,Noto Serif CJK SC,serif;font-size:clamp(3.5rem,5.45vw,6.8rem);font-weight:500;line-height:.91}.login-brand h1 .login-title-line,.login-brand h1 b{font:inherit;color:#f7fbff;-webkit-text-fill-color:currentColor;text-shadow:0 10px 34px #0014324d;background:0 0;-webkit-background-clip:border-box;background-clip:border-box}.login-brand h1 .login-title-line{white-space:nowrap}.login-brand h1 .reveal-title-two{position:relative;top:.12em}.home-hero,.teacher-hero{background:#071c37!important}.home-hero:before,.teacher-hero:before{z-index:1;pointer-events:none;background:linear-gradient(90deg,#031329b8,#051c397a 55%,#03112552)}.home-hero>.hero-lightfall-layer,.teacher-hero>.hero-lightfall-layer{pointer-events:auto;width:100%;height:100%;inset:0;overflow:hidden;z-index:0!important;position:absolute!important}.hero-lightfall-layer canvas{display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.home-hero>:not(.hero-lightfall-layer),.teacher-hero>:not(.hero-lightfall-layer){z-index:2;position:relative}.home-hero>.hero-metrics,.teacher-hero>.tf-hero-metrics{position:absolute!important}@media (max-width:1100px){.login-brand h1{font-size:clamp(3.35rem,5.45vw,5.5rem)}}@media (max-width:900px){.login-brand h1{letter-spacing:-.045em;font-size:clamp(3rem,11vw,5.25rem);line-height:.93}}@media (prefers-reduced-motion:reduce){.login-lightfall,.hero-lightfall-layer{opacity:.55}}.tf-unified-head{margin-bottom:22px}.tf-unified-head .head-actions{align-items:center;display:flex}.tf-unified-head .tf-class-select{min-width:245px}.tf-subtabs{background:var(--soft);border:1px solid var(--border);border-radius:11px;gap:8px;width:max-content;margin:-4px 0 20px;padding:5px;display:flex}.tf-subtabs button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:8px;padding:0 22px;font-weight:800}.tf-subtabs button.active{background:var(--card);color:#126fc4;box-shadow:0 4px 12px #14538c1f}.tf-progress-3d>div{margin:19px 0}.tf-progress-3d span{justify-content:space-between;font-size:14px;font-weight:700;display:flex}.tf-progress-3d i{border:1px solid color-mix(in srgb,var(--border) 72%,#7c9bb7);background:linear-gradient(#d7e2ec,#edf3f8);border-radius:3px;height:14px;margin:8px 3px 7px;display:block;position:relative;overflow:visible;transform:skew(-7deg);box-shadow:inset 0 2px 3px #15375624,0 4px 7px #11416c1f}.tf-progress-3d i:after{content:"";opacity:.45;background:#9fb5c8;border-radius:0 0 3px 3px;height:4px;position:absolute;bottom:-5px;left:3px;right:-4px}.tf-progress-3d em{z-index:1;background:linear-gradient(#65b8f3 0 25%,#1978d0 30% 72%,#0f5fa8 100%);border-radius:2px;height:100%;display:block;position:relative;box-shadow:4px 4px 6px #0e528f38}.tf-progress-3d em:before{content:"";opacity:.8;background:#bce7ff;border-radius:2px;height:2px;position:absolute;inset:1px 3px auto}.tf-progress-3d small{color:var(--muted);font-size:12px}.tf-score-bars-3d{border-bottom:1px solid var(--border);background:repeating-linear-gradient(to top,transparent 0 59px,color-mix(in srgb,var(--border) 70%,transparent) 60px);grid-template-columns:repeat(4,1fr);align-items:end;gap:24px;height:315px;padding:20px 18px 0;display:grid}.tf-score-bars-3d>div{text-align:center}.tf-score-column{perspective:500px;justify-content:center;align-items:flex-end;height:250px;display:flex}.tf-score-column i{background:linear-gradient(90deg,#176fc4,#3e9be6);border-radius:3px 3px 0 0;width:58px;min-height:5px;display:block;position:relative;box-shadow:8px 8px 13px #0e4a7e33}.tf-score-column i:before{content:"";transform-origin:bottom;background:linear-gradient(135deg,#9edcff,#4da8ec);border-radius:3px 3px 0 0;height:8px;position:absolute;top:-8px;left:0;right:0;transform:skew(-42deg)}.tf-score-column i:after{content:"";transform-origin:0;background:linear-gradient(#1767ad,#0d4f8c);width:9px;height:calc(100% + 3px);position:absolute;top:-3px;right:-9px;transform:skewY(-42deg)}.tf-score-column b{font-size:16px;font-style:normal;position:absolute;top:-33px;left:0;right:0}.tf-score-bars-3d span{margin:10px 0;font-size:13px;display:block}.tf-mastery-grid{grid-template-columns:minmax(390px,.78fr) minmax(640px,1.22fr)}.tf-radar-only{flex-direction:column;display:flex}.tf-radar-only .tf-title{margin-bottom:3px}.tf-labeled-radar{width:min(100%,360px);height:auto;margin:auto;display:block;overflow:visible}.tf-labeled-radar.large{width:min(100%,440px);max-height:410px}.tf-labeled-radar .grid{fill:#398fda0f;stroke:#8fb5d8;stroke-width:1px}.tf-labeled-radar line{stroke:#a9c3da;stroke-width:.8px}.tf-labeled-radar .value{fill:#1878d345;stroke:#1677d2;stroke-width:2px}.tf-labeled-radar circle{fill:#176fbd}.tf-labeled-radar text{fill:var(--ink);font-size:9px;font-weight:750}.tf-experiment-skill-matrix{grid-template-columns:92px repeat(8,minmax(58px,1fr));align-items:center;gap:6px;padding-bottom:3px;display:grid;overflow-x:auto}.tf-experiment-skill-matrix>b{text-align:center;color:var(--muted);white-space:nowrap;font-size:11px}.tf-experiment-skill-matrix .contents{display:contents}.tf-experiment-skill-matrix strong{font-size:13px}.tf-experiment-skill-matrix i{color:#fff;text-shadow:0 1px 2px #063d72;border-radius:7px;place-items:center;height:48px;font-size:13px;font-style:normal;font-weight:850;display:grid}.tf-event-analysis{gap:20px;display:grid}.tf-event-stats{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.tf-event-columns{grid-template-columns:.9fr 1.1fr;align-items:start;gap:24px;display:grid}.tf-recent-events h3{margin:0 0 10px;font-size:15px}.tf-recent-events>div{border:1px solid var(--border);border-radius:10px;max-height:360px;overflow:auto}.tf-recent-events article{border-bottom:1px solid var(--border);padding:12px 14px}.tf-recent-events article:last-child{border:0}.tf-recent-events time{color:var(--muted);font-size:11px;display:block}.tf-recent-events b{margin:4px 0;font-size:13px;display:block}.tf-recent-events p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.tf-profile-scroll{max-height:478px;overflow:auto}.tf-profile-scroll table{min-width:1040px}.tf-profile-scroll th{top:0}.tf-table-count{text-align:right;color:var(--muted);margin:9px 4px 0;font-size:13px}.tf-dialog-backdrop{z-index:160;padding:3vh 3vw}.tf-profile-dialog,.tf-review-dialog{background:var(--card);width:min(1500px,92vw);max-height:92vh;color:var(--ink);border:1px solid var(--border);border-radius:20px;padding:30px;position:relative;overflow:auto;box-shadow:0 30px 90px #02142859}.tf-profile-dialog>header{border-bottom:1px solid var(--border);padding:4px 4px 22px}.tf-profile-dialog>header h2,.tf-review-dialog>header h2{margin:0 0 10px;font-size:30px}.tf-profile-dialog>header p,.tf-review-dialog>header p{color:var(--muted);margin:0;font-size:16px}.tf-profile-gradebook{border:1px solid var(--border);border-radius:15px;margin:20px 0;padding:20px 24px}.tf-profile-gradebook .tf-title{margin-bottom:10px}.tf-profile-gradebook table{border-collapse:collapse;width:100%}.tf-profile-gradebook th,.tf-profile-gradebook td{padding:13px 12px}.tf-profile-gradebook td:first-child{min-width:310px}.tf-profile-lower{grid-template-columns:1.15fr .85fr;gap:22px;display:grid}.tf-profile-radar-card,.tf-process-card{border:1px solid var(--border);background:var(--card);border-radius:15px;min-height:390px;padding:20px}.tf-profile-radar-card{place-items:center;display:grid}.tf-process-card h3{margin:0 0 12px;font-size:20px}.tf-process-card>div{border:1px solid var(--border);border-radius:10px;max-height:330px;overflow:auto}.tf-process-card article{border-bottom:1px solid var(--border);gap:12px;padding:14px;display:flex}.tf-process-card article:last-child{border:0}.tf-process-card article>span{background:var(--soft);color:#526b82;border-radius:15px;flex:none;align-self:flex-start;padding:5px 10px;font-size:12px;font-weight:850}.tf-process-card p{margin:0;font-size:14px;line-height:1.65}.tf-review-dialog{border-radius:18px;width:min(1600px,92vw);max-height:90vh}.tf-review-dialog>header{margin-bottom:20px;padding-right:45px}.tf-review-dialog>header>span{color:#1674cd;letter-spacing:.12em;font-size:12px;font-weight:850}.tf-review-dialog .tf-panel{margin-bottom:16px}.tf-review-dialog .tf-theory-review{max-height:none}.dark .tf-progress-3d i{background:linear-gradient(#102033,#1b2d40);border-color:#34516c}.dark .tf-progress-3d i:after{background:#36516b}.dark .tf-subtabs button.active{box-shadow:0 4px 14px #00000040}.dark .tf-profile-dialog,.dark .tf-review-dialog{box-shadow:0 30px 90px #0009}@media (max-width:1200px){.tf-mastery-grid,.tf-profile-lower,.tf-event-columns{grid-template-columns:1fr}.tf-experiment-skill-matrix{grid-template-columns:96px repeat(4,minmax(86px,1fr))}.tf-profile-radar-card{min-height:330px}}@media (max-width:800px){.tf-unified-head{display:block}.tf-unified-head .head-actions{margin-top:14px}.tf-analysis-grid{grid-template-columns:1fr}.tf-score-bars-3d{height:280px}.tf-profile-dialog,.tf-review-dialog{width:96vw;padding:20px}.tf-profile-gradebook{overflow:auto}.tf-profile-gradebook table{min-width:850px}.tf-profile-dialog>header h2,.tf-review-dialog>header h2{font-size:23px}}.tf-home-hero .tf-hero-metrics-compact{grid-template-columns:repeat(4,112px);gap:16px;display:grid;bottom:27px;left:44px;right:auto}.tf-hero-metrics-compact>div{border-left:1px solid #9acbef61;padding-left:12px}.tf-hero-metrics-compact>div:first-child{border-left:0;padding-left:0}.tf-hero-metrics-compact b{font-size:23px}.tf-hero-metrics-compact span{margin-top:2px;font-size:12px}.tf-home-review{margin-bottom:20px;padding:20px}.tf-home-review-filters{grid-template-columns:1fr 1fr 1.2fr 1.35fr;gap:9px;margin-bottom:10px;display:grid}.tf-home-review-filters select,.tf-home-review-filters input{border:1px solid var(--border);background:var(--card);height:39px;color:var(--ink);border-radius:8px;padding:0 10px;font-size:13px}.tf-home-review-scroll{border:1px solid var(--border);border-radius:9px;max-height:188px;overflow:auto}.tf-home-review-scroll th,.tf-home-review-scroll td{padding:10px 9px;font-size:12px}.tf-home-review-scroll td button,.tf-review-scroll-six td button{background:var(--card);color:#1169b8;border:1px solid #4b91ce;border-radius:7px;padding:6px 10px;font-weight:750}.tf-home-overview-grid{grid-template-columns:minmax(0,2fr) minmax(330px,1fr);gap:20px;display:grid}.tf-mini-progress{grid-template-columns:1fr 1fr;gap:16px;display:grid}.tf-mini-progress article{border:1px solid var(--border);background:var(--soft);border-radius:11px;padding:14px}.tf-mini-progress article header{justify-content:space-between;align-items:center;display:flex}.tf-mini-progress article header b{font-size:14px}.tf-mini-progress article header span{color:var(--muted);font-size:11px}.tf-mini-progress article>div{grid-template-columns:repeat(4,1fr);align-items:end;gap:12px;height:150px;margin-top:12px;display:grid}.tf-mini-progress figure{text-align:center;grid-template-rows:1fr auto;height:100%;margin:0;display:grid}.tf-mini-progress figure>i{background:linear-gradient(90deg,#dce7f0,#edf4f9);border-radius:5px;align-items:flex-end;width:28px;height:108px;margin:auto;display:flex;position:relative;box-shadow:inset 0 2px 3px #13395a24}.tf-mini-progress figure em{background:linear-gradient(90deg,#146fc5,#49a3ea);border-radius:5px 5px 3px 3px;width:100%;display:block;box-shadow:4px 4px 7px #0e4b8133}.tf-mini-progress figcaption b{font-size:12px;display:block}.tf-mini-progress figcaption span{color:var(--muted);margin-top:2px;font-size:9px;display:block}.tf-home-radar-card{flex-direction:column;display:flex}.tf-home-radar{width:min(100%,310px);margin:auto;display:block;overflow:visible}.tf-home-radar .grid{fill:#2984d30f;stroke:#87afd2}.tf-home-radar line{stroke:#abc2d6;stroke-width:.8px}.tf-home-radar .value{fill:#1a7cd445;stroke:#1778d1;stroke-width:2px}.tf-home-radar circle{fill:#1269b7}.tf-home-radar text{fill:var(--ink);font-size:9px;font-weight:750}.tf-home-matrix-card{margin-top:20px}.tf-home-matrix{grid-template-columns:92px repeat(8,minmax(62px,1fr));align-items:center;gap:7px;display:grid;overflow-x:auto}.tf-home-matrix>b{text-align:center;color:var(--muted);font-size:11px}.tf-home-matrix .contents{display:contents}.tf-home-matrix strong{font-size:13px}.tf-home-matrix i{color:#fff;text-shadow:0 1px 2px #063d72;border-radius:7px;place-items:center;height:45px;font-size:13px;font-style:normal;font-weight:850;display:grid}.tf-step-modal-final{width:min(1180px,94vw)}.tf-step-modal-final .tf-real-schematic>p{color:var(--muted);margin:0 0 10px;font-size:13px}.tf-real-schematic>div{border:1px solid var(--border);background:#f8fafc;border-radius:10px;place-items:center;height:380px;padding:12px;display:grid;overflow:auto}.tf-real-schematic img{object-fit:contain;max-width:100%;max-height:100%;display:block}.dark .tf-real-schematic>div{background:#101c2b}.tf-step-info .tf-warning-block{background:linear-gradient(135deg,#fff8e8,#fffdf7);border:1px solid #e4b663;border-left:5px solid #dc9225}.tf-warning-block h3{color:#9a5d0b}.tf-warning-block p{color:#75511e}.dark .tf-step-info .tf-warning-block{background:linear-gradient(135deg,#3d2f18,#2a251c);border-color:#8d692e}.dark .tf-warning-block h3{color:#ffc66c}.dark .tf-warning-block p{color:#efd4a4}.tf-review-stats-compact{grid-template-columns:repeat(4,minmax(150px,1fr));max-width:920px}.tf-review-stats-compact article{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:13px 16px;position:relative}.tf-review-stats-compact article:before{content:"";background:#287fd0;width:34px;height:3px;position:absolute;top:0;left:16px}.tf-review-stats-compact span,.tf-review-stats-compact small{color:var(--muted);font-size:12px;display:block}.tf-review-stats-compact b{margin:5px 0 2px;font-size:23px;display:block}.tf-review-scroll-six{max-height:390px;overflow:auto}.tf-dense-review-dialog{background:var(--card);width:min(1580px,92vw);max-height:91vh;color:var(--ink);border:1px solid var(--border);border-radius:18px;padding:25px;position:relative;overflow:auto;box-shadow:0 32px 90px #00122b61}.tf-dense-review-dialog>header{margin-bottom:14px;padding-right:42px}.tf-dense-review-dialog>header>span{color:#1674cd;letter-spacing:.12em;font-size:11px;font-weight:850}.tf-dense-review-dialog>header h2{margin:5px 0 9px;font-size:23px}.tf-dense-review-dialog>header>div{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.tf-dense-review-dialog>header small{border:1px solid var(--border);color:var(--muted);border-radius:7px;padding:7px 10px;font-size:12px}.tf-dense-review-dialog>header small b{color:var(--ink);margin-left:5px}.tf-dense-evidence{border:1px solid var(--border);background:var(--card);border-radius:13px;margin-bottom:13px;padding:16px}.tf-dense-title{justify-content:space-between;align-items:center;gap:20px;margin-bottom:13px;display:flex}.tf-dense-title h2{margin:0;font-size:19px}.tf-dense-title p{color:var(--muted);margin:4px 0 0;font-size:12px}.tf-inline-score{background:var(--soft);border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:9px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:750;display:flex}.tf-inline-score input{background:var(--card);color:#1267b4;text-align:center;border:1px solid #79add8;border-radius:7px;width:68px;height:36px;font-size:18px;font-weight:850}.tf-inline-score em{font-style:normal}.tf-virtual-evidence{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.tf-virtual-evidence span{background:var(--soft);color:var(--muted);border-radius:8px;padding:10px;font-size:11px}.tf-virtual-evidence b{color:var(--ink);margin-top:4px;font-size:16px;display:block}.tf-dense-summary{background:var(--soft);color:var(--muted);border-left:4px solid #dc9a2c;margin:10px 0 0;padding:10px 12px;font-size:12px}.tf-theory-grid-3x2{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;display:grid}.tf-theory-grid-3x2 article{border:1px solid var(--border);background:var(--card);border-left:4px solid #38a36b;border-radius:9px;flex-direction:column;min-height:230px;padding:12px;display:flex}.tf-theory-grid-3x2 article.wrong{border-left-color:#d64b59}.tf-theory-grid-3x2 article header{justify-content:space-between;align-items:center;display:flex}.tf-theory-grid-3x2 article header b{font-size:12px}.tf-theory-grid-3x2 article header em{color:#23824d;font-size:12px;font-style:normal;font-weight:850}.tf-theory-grid-3x2 article.wrong header em{color:#c23c49}.tf-theory-grid-3x2 h3{min-height:39px;margin:9px 0;font-size:13px;line-height:1.5}.tf-theory-grid-3x2 article>div{gap:6px;display:grid}.tf-theory-grid-3x2 article>div span{background:var(--soft);color:var(--muted);border-radius:6px;padding:7px;font-size:10px;display:block}.tf-theory-grid-3x2 article>div b{color:var(--ink);margin-top:2px;font-size:11px;line-height:1.45;display:block}.tf-theory-grid-3x2 article>p{color:var(--muted);margin:auto 0 0;padding-top:8px;font-size:10px}.tf-dense-photos{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.tf-dense-photos button{border:1px solid var(--border);background:var(--soft);color:var(--ink);border-radius:9px;padding:0;overflow:hidden}.tf-dense-photos img{object-fit:contain;width:100%;height:130px;display:block}.tf-dense-photos span{padding:7px;font-size:11px;display:block}.tf-dense-review-dialog>footer{border:1px solid var(--border);background:var(--soft);border-radius:13px;grid-template-columns:190px 1fr auto;align-items:end;gap:14px;padding:16px;display:grid}.tf-final-score{flex-direction:column;justify-content:center;align-self:stretch;display:flex}.tf-final-score span,.tf-final-score small{color:var(--muted);font-size:11px}.tf-final-score b{color:#1674ce;font-size:35px;line-height:1.15}.tf-dense-review-dialog>footer>label{font-size:12px;font-weight:750}.tf-dense-review-dialog>footer textarea{border:1px solid var(--border);background:var(--card);width:100%;min-height:74px;color:var(--ink);border-radius:8px;margin-top:6px;padding:10px;display:block}.tf-dense-review-dialog>footer>div:last-child{gap:9px;display:flex}.tf-dense-review-dialog>footer button{background:var(--card);color:#1269b7;border:1px solid #448cca;border-radius:8px;height:43px;padding:0 16px;font-weight:800}.tf-dense-review-dialog>footer button.primary{color:#fff;background:#1677d2}.tf-dense-review-dialog>footer button.danger{color:#b3313e;border-color:#cf5964}.dark .tf-mini-progress figure>i{background:linear-gradient(90deg,#14283b,#20374c)}.dark .tf-dense-review-dialog{box-shadow:0 32px 90px #0000009e}@media (max-width:1200px){.tf-home-overview-grid{grid-template-columns:1fr}.tf-home-review-filters{grid-template-columns:1fr 1fr}.tf-theory-grid-3x2{grid-template-columns:repeat(2,1fr)}.tf-dense-review-dialog>footer{grid-template-columns:160px 1fr}.tf-dense-review-dialog>footer>div:last-child{grid-column:1/-1;justify-content:flex-end}}@media (max-width:800px){.tf-home-hero .tf-hero-metrics-compact{grid-template-columns:repeat(2,110px)}.tf-mini-progress{grid-template-columns:1fr}.tf-review-stats-compact{grid-template-columns:1fr 1fr}.tf-virtual-evidence{grid-template-columns:repeat(3,1fr)}.tf-theory-grid-3x2{grid-template-columns:1fr}.tf-dense-title{flex-direction:column;align-items:flex-start}.tf-dense-photos{grid-template-columns:repeat(2,1fr)}.tf-dense-review-dialog>footer,.tf-home-review-filters{grid-template-columns:1fr}}.teacher-final{color:var(--ink);font-size:15px}.teacher-final button,.teacher-final input,.teacher-final select,.teacher-final textarea{font:inherit}.tf-head{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.tf-head>div:first-child>span,.tf-modal>span,.tf-question-head span{color:#1674cd;letter-spacing:.1em;font-size:13px;font-weight:800}.tf-head h1{margin:7px 0;font-size:34px;line-height:1.2}.tf-head p{color:var(--muted);margin:0;font-size:16px;line-height:1.7}.tf-head>div:last-child{align-items:center;gap:10px;display:flex}.tf-title{margin-bottom:18px}.tf-title h2{margin:0;font-size:22px}.tf-title p{color:var(--muted);margin:6px 0 0;font-size:14px}.tf-panel{background:var(--card);border:1px solid var(--border);border-radius:15px;margin-bottom:20px;padding:23px}.tf-stats{gap:14px;margin-bottom:20px;display:grid}.tf-stats.three{grid-template-columns:repeat(3,1fr)}.tf-stats.four{grid-template-columns:repeat(4,1fr)}.tf-stat{background:var(--card);border:1px solid var(--border);border-radius:13px;padding:18px;position:relative;overflow:hidden}.tf-stat:before{content:"";background:#287fd0;width:48px;height:3px;position:absolute;top:0;left:18px}.tf-stat span{color:var(--muted);font-size:14px;font-weight:650;display:block}.tf-stat b{margin:9px 0 6px;font-size:26px;display:block}.tf-stat small{color:var(--muted);font-size:13px}.teacher-hero{color:#fff;background:#071c37 url(/assets/brand/login-background.png) 50%/cover no-repeat;border-radius:18px;min-height:360px;margin-bottom:20px;padding:40px 44px;position:relative;overflow:hidden;box-shadow:0 18px 42px #08284d2b}.teacher-hero:before{content:"";background:linear-gradient(90deg,#031329eb,#051c39b3,#03112580);position:absolute;inset:0}.teacher-hero:after{content:"";opacity:.72;background:linear-gradient(104deg,#0000 0 17%,#54bdff8c 18%,#0000 19% 42%,#309cf16b 43%,#0000 44% 70%,#62c7ff59 71%,#0000 72%) 0 0/230% 100%;animation:8s linear infinite tfCurrent;position:absolute;inset:0;-webkit-mask:linear-gradient(12deg,#0000 0 27%,#000 28% 30%,#0000 31% 52%,#000 53% 55%,#0000 56% 77%,#000 78% 80%,#0000 81%);mask:linear-gradient(12deg,#0000 0 27%,#000 28% 30%,#0000 31% 52%,#000 53% 55%,#0000 56% 77%,#000 78% 80%,#0000 81%)}.teacher-hero>*{z-index:1;position:relative}.teacher-hero>span{color:#8bd0ff;background:#0b3764aa;border:1px solid #4388c4;border-radius:18px;padding:7px 12px;font-size:12px;font-weight:800;display:inline-block}.teacher-hero h1{margin:25px 0 8px;font-size:40px}.teacher-hero>p{color:#d4e5f5;max-width:720px;font-size:16px}.tf-hero-actions{gap:12px;margin-top:24px;display:flex}.tf-hero-actions button{color:#fff;background:#ffffff12;border:1px solid #6d8da9;border-radius:9px;min-height:46px;padding:0 20px;font-weight:750}.tf-hero-actions .primary{background:#2979e8;border-color:#2979e8}.tf-hero-metrics{grid-template-columns:repeat(3,180px);gap:32px;display:grid;position:absolute;bottom:28px;left:44px;right:44px}.tf-hero-metrics b{font-size:28px;display:block}.tf-hero-metrics span{color:#bfd3e5;font-size:13px}@keyframes tfCurrent{to{background-position:-230% 0}}.tf-scroll{max-height:380px;overflow:auto}.teacher-final table{border-collapse:collapse;width:100%}.teacher-final th,.teacher-final td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:13px 12px;font-size:14px}.teacher-final th{z-index:1;background:var(--soft);color:var(--muted);font-size:13px;font-weight:800;position:sticky;top:0}.teacher-final td small{color:var(--muted);margin-top:4px;font-size:12px;display:block}.teacher-final td button,.tf-back{background:var(--card);color:#1169b8;border:1px solid #4b91ce;border-radius:8px;padding:8px 12px;font-weight:750}.tf-tag{white-space:nowrap;color:#607184;background:#e9eef3;border-radius:16px;justify-content:center;align-items:center;padding:5px 10px;font-size:12px;font-style:normal;font-weight:800;display:inline-flex}.tf-tag.pending{color:#8a6113;background:#fff3ce}.tf-tag.approved{color:#267044;background:#def4e7}.tf-tag.returned{color:#aa3540;background:#fde6e8}.dark .tf-tag.pending{color:#ffe09a;background:#4c3d1e}.dark .tf-tag.approved{color:#9de0b6;background:#173d2c}.dark .tf-tag.returned{color:#ffafb7;background:#49252b}.tf-class-progress{grid-template-columns:1fr 1fr;gap:30px;display:grid}.tf-class-progress>div{background:var(--soft);border-radius:12px;padding:17px}.tf-class-progress h3{margin:0 0 14px;font-size:16px}.tf-class-progress h3 small{float:right;color:var(--muted);font-size:12px}.tf-class-progress>div>div,.tf-progress-bars>div{margin:13px 0}.tf-class-progress span,.tf-progress-bars span,.tf-skill-list span,.tf-top-bars span,.tf-distribution span{justify-content:space-between;font-size:13px;display:flex}.tf-class-progress i,.tf-progress-bars i,.tf-skill-list i,.tf-top-bars i,.tf-distribution i{background:var(--border);border-radius:7px;height:7px;margin-top:7px;display:block;overflow:hidden}.tf-class-progress em,.tf-progress-bars em,.tf-skill-list em,.tf-top-bars em,.tf-distribution em{background:#1879d4;height:100%;display:block}.tf-home-lower,.tf-analysis-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.tf-radar-row{grid-template-columns:300px 1fr;align-items:center;gap:26px;display:grid}.tf-radar{width:280px;height:280px}.tf-radar polygon{fill:#2280d412;stroke:#76a9d6}.tf-radar polygon.value{fill:#1878d340;stroke:#1677d2;stroke-width:2px}.tf-radar circle{fill:#176fbd}.tf-skill-list>div{margin:10px 0}.tf-skill-list span{font-weight:650}.tf-heatmap,.tf-color-matrix{grid-template-columns:120px repeat(4,1fr);align-items:center;gap:7px;display:grid}.tf-heatmap>b,.tf-color-matrix>b{text-align:center;color:var(--muted);font-size:12px}.tf-heatmap .contents,.tf-color-matrix .contents{display:contents}.tf-heatmap strong,.tf-color-matrix strong{font-size:13px}.tf-heatmap i,.tf-color-matrix em{color:#fff;border-radius:7px;place-items:center;height:39px;font-style:normal;font-weight:800;display:grid}.tf-safety-overview>.tf-stats{margin:0}.tf-task-list{flex-direction:column;gap:18px;display:flex}.tf-task-card{background:var(--card);border:1px solid var(--border);border-radius:15px;grid-template-columns:270px 1fr 155px;min-height:300px;display:grid;overflow:hidden}.tf-task-image{background:linear-gradient(145deg,#edf7fd,#dcecf8);place-items:center;display:grid;position:relative}.dark .tf-task-image{background:linear-gradient(145deg,#1a2d41,#172538)}.tf-task-image span{color:#1672c8;letter-spacing:.09em;font-size:12px;position:absolute;top:17px;left:18px}.tf-task-image img{object-fit:contain;mix-blend-mode:multiply;width:82%;height:70%}.dark .tf-task-image img{mix-blend-mode:normal}.tf-task-main{padding:22px}.tf-task-title{justify-content:space-between;align-items:start;display:flex}.tf-task-title small{color:#1672c8;font-size:12px;font-weight:800}.tf-task-title h2{margin:7px 0;font-size:22px}.tf-task-main>p{color:var(--muted);font-size:14px}.tf-time-grid{grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;margin:17px 0;display:grid}.tf-time-grid label{color:var(--muted);font-size:12px;font-weight:700}.tf-time-grid input{border:1px solid var(--border);background:var(--soft);width:100%;height:42px;color:var(--ink);border-radius:8px;margin-top:6px;padding:0 10px;display:block}.tf-time-grid button{color:#1269b7;background:var(--card);border:1px solid #4d91cc;border-radius:8px;height:42px;font-weight:750}.tf-task-data{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.tf-task-data span{background:var(--soft);color:var(--muted);border-radius:8px;padding:9px;font-size:11px}.tf-task-data b{color:var(--ink);margin-top:5px;font-size:15px;display:block}.tf-task-actions{border-left:1px solid var(--border);flex-direction:column;justify-content:center;gap:12px;padding:18px;display:flex}.tf-task-actions button,.tf-modal-actions button,.tf-question-head button,.tf-review-actions button{background:var(--card);color:#1269b7;border:1px solid #448cca;border-radius:9px;min-height:44px;font-weight:800}.tf-task-actions .primary,.tf-modal-actions .primary,.tf-review-actions .primary{color:#fff;background:#1677d2;border-color:#1677d2}.tf-modal{background:var(--card);width:min(1080px,94vw);max-height:92vh;color:var(--ink);border:1px solid var(--border);border-radius:16px;padding:28px;position:relative;overflow:auto}.tf-modal h2{margin:8px 0;font-size:26px}.tf-modal>p{color:var(--muted);font-size:15px}.tf-step-info{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tf-step-info section{background:var(--soft);border:1px solid var(--border);border-radius:11px;padding:16px}.tf-step-info h3{margin:0 0 8px;font-size:16px}.tf-step-info p,.tf-step-info li{color:var(--muted);font-size:14px;line-height:1.7}.tf-step-info section:nth-child(n+3){grid-column:1/-1}.tf-schematic>div{justify-content:center;align-items:center;gap:18px;min-height:90px;display:flex}.tf-schematic i{color:#166bad;border:2px solid #3d8bcd;border-radius:9px;padding:12px 20px;font-style:normal;font-weight:800}.tf-step-info ol{grid-template-columns:1fr 1fr;gap:8px;padding:0;list-style:none;display:grid}.tf-step-info li{background:var(--card);border-radius:8px;padding:10px}.tf-step-info li b{color:#1675ce;margin-right:10px}.tf-question-modal{width:min(1120px,95vw)}.tf-question-head{justify-content:space-between;gap:20px;display:flex}.tf-question-head h2{margin:7px 0}.tf-question-head p{color:var(--muted)}.tf-question-head>button{padding:0 16px}.tf-question-list>section{border-top:1px solid var(--border);padding:17px 0}.tf-question-list header{align-items:center;gap:12px;margin-bottom:9px;display:flex}.tf-question-list header>b{font-size:16px}.tf-question-list header span{color:var(--muted);margin-left:auto;font-size:12px}.tf-question-list header button{background:var(--card);color:#1168b7;border:1px solid #5a96c9;border-radius:7px;padding:7px 10px}.tf-question-list label{color:var(--muted);font-size:13px;font-weight:650}.tf-question-list input,.tf-question-list select{border:1px solid var(--border);background:var(--soft);width:100%;height:40px;color:var(--ink);border-radius:7px;margin-top:5px;padding:0 10px;display:block}.tf-question-list>section>div{grid-template-columns:1fr 1fr;gap:9px;margin:10px 0;display:grid}.tf-modal-actions{background:var(--card);justify-content:flex-end;gap:10px;padding:16px 0;display:flex;position:sticky;bottom:-28px}.tf-modal-actions button{padding:0 20px}.tf-review-stats{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px;display:grid}.tf-filters{grid-template-columns:1.35fr 1fr 1fr 1.3fr 1fr;gap:10px;margin-bottom:16px;display:grid}.tf-filters.profile{grid-template-columns:1.3fr 1.4fr 1.2fr}.tf-filters select,.tf-filters input,.tf-class-select{border:1px solid var(--border);background:var(--card);height:45px;color:var(--ink);border-radius:9px;padding:0 12px;font-size:14px}.tf-review-table{padding:0;overflow:hidden}.tf-review-table .tf-scroll{max-height:590px}.tf-back{margin-bottom:16px}.tf-score-summary{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.tf-score-summary>*{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:17px}.tf-score-summary label{color:var(--muted);font-size:13px;font-weight:700}.tf-score-summary input{background:var(--soft);color:#1267b4;border:1px solid #86b8e2;border-radius:8px;width:100%;height:50px;margin-top:8px;padding:0 12px;font-size:24px;font-weight:850;display:block}.tf-score-summary>div span,.tf-score-summary>div small{color:var(--muted);font-size:13px;display:block}.tf-score-summary>div b{color:#1674ce;margin:5px 0;font-size:32px;display:block}.tf-evidence-grid{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.tf-error-summary{background:var(--soft);border-left:4px solid #d79328;margin-top:14px;padding:13px}.tf-error-summary p{color:var(--muted);margin:5px 0 0}.tf-theory-review article{border:1px solid var(--border);border-left:4px solid #35a166;border-radius:10px;margin:11px 0;padding:14px}.tf-theory-review article.wrong{border-left-color:#d64b59}.tf-theory-review article header{justify-content:space-between;gap:20px;display:flex}.tf-theory-review article header b{font-size:15px}.tf-theory-review article header em{color:#23824d;font-style:normal;font-weight:850}.tf-theory-review article.wrong header em{color:#c23c49}.tf-theory-review article>div{grid-template-columns:1fr 1fr;gap:7px;margin:11px 0;display:grid}.tf-theory-review article>div span{background:var(--soft);border:1px solid var(--border);border-radius:7px;padding:8px;font-size:13px}.tf-theory-review span.student{border-color:#e1a244}.tf-theory-review span.answer{color:#216c40;background:#e1f5e8;border-color:#69be89}.dark .tf-theory-review span.answer{color:#a7dfba;background:#173b2a}.tf-theory-review article p{color:var(--muted);margin:0;font-size:13px}.tf-photos{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.tf-photos button{border:1px solid var(--border);background:var(--soft);color:var(--ink);border-radius:10px;padding:0;overflow:hidden}.tf-photos img{object-fit:contain;width:100%;height:150px}.tf-photos span{padding:9px;font-size:13px;display:block}.tf-comment{margin-top:15px;font-size:14px;font-weight:750;display:block}.tf-comment textarea{border:1px solid var(--border);background:var(--soft);width:100%;min-height:100px;color:var(--ink);border-radius:9px;margin-top:7px;padding:12px;display:block}.tf-review-actions{justify-content:flex-end;gap:12px;margin-top:15px;display:flex}.tf-review-actions button{padding:0 18px}.tf-review-actions .danger{color:#b3313e;border-color:#cf5964}.tf-lightbox{z-index:200;background:#06111ddd;place-items:center;display:grid;position:fixed;inset:0}.tf-lightbox img{max-width:86vw;max-height:84vh}.tf-lightbox button{color:#fff;background:0 0;border:0;font-size:32px;position:absolute;top:3vh;right:4vw}.tf-evidence-grid .tf-stat{background:var(--soft)}.tf-progress-bars small{color:var(--muted);font-size:12px}.tf-line-chart{border-bottom:1px solid var(--border);background:repeating-linear-gradient(to top,transparent 0 59px,var(--border) 60px);align-items:flex-end;gap:16px;height:310px;padding:30px 10px 0;display:flex}.tf-line-chart>div{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.tf-line-chart i{background:linear-gradient(#48a5ef,#166fc1);border-radius:8px 8px 0 0;width:52px;max-height:240px;position:relative}.tf-line-chart i b{text-align:center;width:100%;font-style:normal;position:absolute;top:-26px}.tf-line-chart span{margin-top:8px;font-size:12px}.tf-top-bars>div,.tf-distribution>div{margin:14px 0}.tf-top-bars em{background:#3b86c7}.tf-distribution{border-top:1px solid var(--border);margin-top:18px;padding-top:10px}.tf-distribution h3{font-size:15px}.tf-distribution em{background:#6ba9db}.tf-insight{background:var(--soft);color:var(--muted);border-left:4px solid #d7952a;padding:12px;font-size:13px}.tf-profile-table{padding:0;overflow:auto}.tf-profile-table th,.tf-profile-table td{text-align:center}.tf-profile-table td:nth-child(-n+3),.tf-profile-table th:nth-child(-n+3){text-align:left}.tf-profile-table td strong{color:#126fc4;font-size:17px}.tf-overall{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:12px;padding:12px 20px}.tf-overall span{color:var(--muted);font-size:12px;display:block}.tf-overall b{color:#1674ce;font-size:30px}.tf-profile-scores{grid-template-columns:1fr 1fr;gap:14px;display:grid}.tf-profile-scores article{border:1px solid var(--border);border-radius:11px;overflow:hidden}.tf-profile-scores header{background:linear-gradient(135deg,#edf6fd,var(--soft));padding:14px}.dark .tf-profile-scores header{background:linear-gradient(135deg,#17314a,var(--soft))}.tf-profile-scores header span{color:#1674ce;font-size:11px}.tf-profile-scores h3{margin:5px 0 0;font-size:16px}.tf-profile-scores article>div{grid-template-columns:repeat(4,1fr);gap:8px;padding:13px;display:grid}.tf-profile-scores article>div span{background:var(--soft);color:var(--muted);border-radius:7px;padding:10px;font-size:12px}.tf-profile-scores article>div b{color:var(--ink);margin-top:5px;font-size:19px;display:block}.tf-color-matrix strong{align-items:center;gap:7px;display:flex}.tf-color-matrix strong i{border-radius:50%;width:9px;height:9px}.tf-color-matrix em{color:#fff;text-shadow:0 1px 2px #0008}.tf-student-matrix{margin-top:20px}@media (max-width:1250px){.tf-task-card{grid-template-columns:220px 1fr}.tf-task-actions{border-left:0;border-top:1px solid var(--border);flex-direction:row;grid-column:1/-1}.tf-task-actions button{flex:1}.tf-task-data{grid-template-columns:repeat(3,1fr)}.tf-home-lower,.tf-analysis-grid{grid-template-columns:1fr}.tf-radar-row{grid-template-columns:260px 1fr}.tf-evidence-grid{grid-template-columns:repeat(3,1fr)}}.lightfall-container{width:100%;height:100%;position:relative;overflow:hidden}.lab-path{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#072b52c2,#051f4094);border:1px solid #84c2f84d;border-radius:22px;padding:18px 22px;box-shadow:0 18px 45px #000c2133,inset 0 1px #ffffff14}.lab-path:before{opacity:.45;top:45px;bottom:45px;left:42px}.lab-path div{gap:16px;min-height:78px}.lab-path i{background:#08498ba3;border-color:#8bccff94;width:46px;height:46px;font-size:12px;font-weight:750}.lab-path span{color:#f7fbff;text-shadow:0 1px 12px #00112b8c;font-size:18px;font-weight:700;line-height:1.45}.lab-path small{color:#8fc9ff;margin-bottom:4px;font-size:12px;font-weight:700}.panel-kicker{font-size:12px;font-weight:700}.login-panel>p{font-size:15px}.login-panel label span{font-size:13px;font-weight:650}.role-switch button,.login-submit{font-size:15px}.secure-note{font-size:12px}.login-error{font-size:13px!important}.platform{--side:#315f86;--muted:#607389}.platform.dark{--side:#213b55;--muted:#a9bacb}.topbar{background:#f7fbff;border-bottom-color:#d8e5f0}.platform.dark .topbar{background:#16283b;border-bottom-color:#30445a}.sidebar{color:#e4eff9;box-shadow:inset -1px 0 #ffffff14}.sidebar button,.sidebar a{color:#e2edf7;font-size:15px;font-weight:650}.side-label{color:#b9d3ea;font-size:11px;font-weight:700}.nav-glyph{color:#b9d8f1}.sidebar button:hover,.sidebar a:hover{background:#ffffff1a}.sidebar button.active{background:linear-gradient(90deg,#0d7be7,#176bc2);box-shadow:0 8px 20px #00438b3d}.side-status{color:#d4e4f1;font-size:12px}.side-status small{color:#aac6dc;font-size:11px}.platform,.legacy-shell{--type-page:34px;--type-section:19px;--type-card:16px;--type-body:14px;--type-help:12px}.page-head>div>span{font-size:12px;font-weight:750}.page-head h1{font-size:var(--type-page);font-weight:760}.page-head p{font-size:var(--type-body);color:var(--muted);font-weight:450}.top-brand b{font-size:17px;font-weight:750}.total-progress small,.total-progress em{font-size:12px}.total-progress b{font-size:14px}.theme-toggle,.logout{font-size:13px;font-weight:650}.identity b{font-size:13px}.identity small{font-size:12px}.metric>span{font-size:13px;font-weight:600}.metric strong{font-size:28px;font-weight:780}.metric small{color:var(--muted);font-size:12px}.section-title h2{font-size:var(--type-section);font-weight:750}.section-title p{font-size:13px}.section-title button{font-size:13px;font-weight:650}.lab-image>span,.task-photo>span,.teacher-task-image>span{font-size:11px;font-weight:750}.lab-title h3,.lab-title h2{font-size:var(--type-card);font-weight:750}.task-info h2,.teacher-task-main h2{font-size:19px}.lab-body>p,.task-info>p,.teacher-task-main>p{font-size:13px;font-weight:450}.status,.pill{font-size:11px;font-weight:650}.lab-progress span{font-size:12px;font-weight:600}.skill-tags span{font-size:11px;font-weight:650}.lab-buttons button,.four-actions button,.recommend-labs button,.mini-theory>button,.task-manage button,.review-actions button{min-height:36px;font-size:13px;font-weight:650}.skill-bars span,.safety-bars span{font-size:13px}.skill-switcher button{font-size:14px;font-weight:650}.skill-switcher button span,.skill-switcher button em{font-size:11px}.skill-hero>div>span,.recommend-labs span{font-size:12px}.skill-hero p{font-size:14px}.recommend-labs h3{font-size:15px}.mini-q button{font-size:12px;font-weight:700}.heatmap>b,.heat-row>span,.heat-row button{font-size:12px;font-weight:650}.evidence>span,.evidence dt{font-size:11px}.evidence h2{font-size:17px}.evidence dd{font-size:13px}.evidence>p{font-size:12px}.simple-list b{font-size:13px}.simple-list small,.simple-list em,.trend-lines i,.trend-labels{font-size:11px}.radar .rl{font-size:11px;font-weight:600}.report-list th,.profile-table th{font-size:12px;font-weight:700}.report-list td,.profile-table td,.score-parts span,.teacher-labs b,.todos span{font-size:13px}.score-parts span small,.score-parts strong small,.teacher-labs small,.teacher-labs em{font-size:11px}.final-score p,.final-score span{font-size:12px}.info-grid span,.review-summary span,.review-list small,.review-list em,.review-scores span,.review-scores small,.process-steps span,.physical-preview span,.student-line p,.radar-large>div:last-child>span{font-size:11px}.info-grid b,.review-list b{font-size:13px}.filters select,.filters input,.review-tabs button,.score-input,.review-detail textarea,.task-modal textarea{font-size:12px}.profile-table button{font-size:13px;font-weight:650}.task-modal>span,.diagram-modal>span{font-size:11px}.task-modal h2,.diagram-modal h2{font-size:23px}.task-modal>p,.diagram-modal>p,.questions b{font-size:13px}.questions button{min-height:38px;font-size:12px}.dropzone b{font-size:14px}.dropzone span,.file-list>div{font-size:12px}.assistant-chat header b{font-size:13px}.assistant-chat header small,.chat-messages p,.assistant-chat input,.assistant-chat footer button,.mascot span{font-size:12px}.next-step{color:var(--ink);background:linear-gradient(145deg,#fff,#edf6ff);border:1px solid #cfe2f3;box-shadow:0 10px 28px #1d528212}.recommend{color:#0b6fcf;font-size:12px;font-weight:750}.next-step h2{color:#155d9f;font-weight:780}.advice-evidence span{color:var(--muted);background:#f1f7fc;border:1px solid #dbe8f3;font-size:11px}.advice-evidence b{color:var(--ink);font-size:13px}.platform.dark .next-step{background:linear-gradient(145deg,var(--card),#182b40);border-color:var(--border);box-shadow:none}.platform.dark .recommend{color:#79baff}.platform.dark .next-step h2{color:#d9ebfb}.platform.dark .next-step p{color:var(--muted)}.platform.dark .advice-evidence span{background:var(--soft);border-color:var(--border);color:var(--muted)}.platform.dark .advice-evidence b{color:var(--ink)}.legacy-shell{background:var(--bg,#edf4fa);grid-template-rows:64px 1fr 58px}.legacy-top{background:#f7fbff;border-bottom-color:#d8e5f0;gap:18px;padding:0 22px}.legacy-top button{background:#fff;min-height:38px;padding:9px 13px;font-size:13px;font-weight:650}.legacy-top b{font-size:16px;font-weight:760}.legacy-top span{padding:6px 10px;font-size:12px;font-weight:700}.legacy-save{padding:8px 22px;font-size:12px;font-weight:600}.legacy-save button{min-height:40px;padding:10px 16px;font-size:13px;font-weight:700}.legacy-shell.dark .legacy-top{background:#16283b;border-bottom-color:#30445a}.legacy-shell.dark .legacy-top button{background:var(--soft);border-color:var(--border)}.legacy-shell.dark .legacy-top span{color:#8cc8ff;background:#213e5b}@media (max-width:900px){.lab-path div:nth-child(2n){display:flex}.lab-path{grid-template-columns:1fr;padding:14px 18px}.lab-path:before{left:40px}}.four-actions button{min-height:40px;color:var(--ink);box-shadow:none;background:#f8fbfe;border:1px solid #cbdceb;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.four-actions button:hover{color:#075eae;background:#eaf4fd;border-color:#80b5e6}.four-actions button:active{background:#dceefe;transform:translateY(1px)}.four-actions button:disabled{background:var(--soft);border-color:var(--border);color:var(--muted);opacity:.62;cursor:not-allowed}.dark .four-actions button{color:#e6f1fb;background:#1b3047;border-color:#36526d}.dark .four-actions button:hover{background:#23435f;border-color:#4b87b9}.questions.locked button{cursor:not-allowed}.questions.locked button:not(.selected){opacity:.58}.questions.locked button.selected{color:#fff;opacity:1;background:#27608e;border-color:#27608e}.motor-v2{overflow:hidden}.motor-v2 .motor-top{background:#f7fbfe;border-color:#d6e4f0;height:62px}.motor-v2.dark .motor-top{background:#142438;border-color:#2d4258}.motor-task-banner{color:#fff;background:linear-gradient(100deg,#0c4078,#126eb7);border-bottom:1px solid #ffffff29;align-items:center;gap:15px;height:72px;padding:0 22px;display:flex}.motor-task-banner>b{font-size:26px;line-height:1}.motor-task-banner>span{flex-direction:column;gap:5px;display:flex}.motor-task-banner strong{font-size:17px}.motor-task-banner small{color:#c8e3f8;font-size:13px}.motor-v2 .motor-layout{grid-template-columns:220px minmax(720px,1fr) 310px;gap:10px;height:calc(100vh - 134px);padding:10px}.motor-v2 .motor-steps h3{font-size:15px}.motor-v2 .motor-steps button{padding:10px 8px}.motor-v2 .motor-steps button span{font-size:13px;font-weight:650}.motor-v2 .motor-steps button small{margin-top:4px;font-size:11px}.motor-v2 .motor-steps button>i{flex:none;width:27px;height:27px;font-size:11px}.motor-v2 .motor-bench{grid-template-rows:58px 1fr 52px}.motor-v2 .bench-head span{font-size:11px}.motor-v2 .bench-head b{margin-top:3px;font-size:14px}.motor-v2 .bench-head button,.motor-v2 .bench-footer button{min-height:34px;font-size:12px}.motor-v2 .bench-head button:disabled{opacity:.45}.motor-v2 .board{background:#f7fafc;min-height:740px;overflow:auto}.motor-v2.dark .board{background:#132235}.motor-v2 .board:before{display:none}.motor-v2 .device.power{width:35%;height:100px;top:3%;left:7%}.motor-v2 .device.qf{width:22%;height:225px;top:17%;left:11%}.motor-v2 .device.km{width:28%;height:260px;top:47%;left:8%}.motor-v2 .device.motor{width:34%;height:190px;top:81%;left:7%}.motor-v2 .device.sbstart{width:19%;height:155px;top:48%;left:63%}.motor-v2 .device.sbstop{width:19%;height:155px;top:20%;left:63%}.motor-v2 .device>span{padding:5px 8px;font-size:12px}.motor-v2 .port{width:34px;height:34px;font-size:10px}.motor-v2 .port i{width:13px;height:13px}.motor-v2 .power-flow{top:91%;left:17%}.motor-v2 .wire-layer{pointer-events:none;width:100%;height:100%;overflow:visible}.motor-v2 .wire-layer path{pointer-events:stroke;cursor:pointer;stroke-width:4.5px}.motor-v2 .wire-layer .temp-wire{stroke:#0e76d3;stroke-dasharray:7 6;opacity:.8}.motor-v2 .wire-layer .wrong-wire{stroke-dasharray:5 5}.motor-v2 .wire-layer .selected-wire{stroke-width:8px;filter:drop-shadow(0 0 4px #fff)}.motor-v2 .bench-footer>span{font-size:11px}.motor-v2 .motor-info{padding:18px}.motor-v2 .motor-info>span{font-size:11px}.motor-v2 .motor-info h2{margin-bottom:15px;font-size:19px}.motor-v2 .step-info{padding:10px 0}.motor-v2 .step-info h3{font-size:13px}.motor-v2 .step-info p,.motor-v2 .step-info li{color:var(--muted);font-size:12px;line-height:1.7}.motor-v2 .step-info ol{margin:4px 0 0;padding-left:20px}.motor-v2 .live-record h3{font-size:13px}.motor-v2 .live-record p{font-size:12px}.step-complete{border:0;border-radius:8px;width:100%;min-height:38px;font-size:13px}.motor-toast{z-index:70;color:#fff;background:#0c4078;border:1px solid #99b9d8;border-radius:10px;max-width:520px;padding:12px 18px;font-size:13px;font-weight:650;position:fixed;bottom:68px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #05234340}@media (max-width:1450px){.motor-v2 .motor-layout{grid-template-columns:195px minmax(680px,1fr) 270px;min-width:1165px}}.platform{--top:#092a52;--side:#dceaf7;--side-ink:#274966;--side-active:#c4dcf2;background:#f2f5f8}.platform.dark{--top:#081b31;--side:#122941;--side-ink:#c2d5e8;--side-active:#1d4468;background:#0c1726}.platform .topbar{background:var(--top);color:#f5f9fd;border-color:#20466c}.platform .topbar .top-brand b,.platform .topbar .identity b,.platform .topbar .total-progress b{color:#f5f9fd}.platform .topbar .total-progress,.platform .topbar .total-progress small,.platform .topbar .identity small{color:#b7cde1}.platform .topbar .theme-toggle,.platform .topbar .logout{color:#e8f2fb;background:#143a61;border:1px solid #31577c}.platform .topbar .identity{border-color:#31577c}.platform .sidebar{background:var(--side);color:var(--side-ink);border-right:1px solid #c5d8e9}.platform .side-label,.platform .side-status small{color:#68839b}.platform .sidebar button,.platform .sidebar a{color:var(--side-ink);font-weight:650}.platform .sidebar button:hover,.platform .sidebar a:hover{background:#cfe1f1}.platform.dark .sidebar button:hover,.platform.dark .sidebar a:hover{background:#1a3956}.platform .sidebar button.active{background:var(--side-active);color:#0b568f;box-shadow:none}.platform.dark .sidebar button.active{color:#e8f4ff}.platform .nav-glyph,.platform .sidebar .active .nav-glyph{color:inherit}.platform .side-status,.platform .ai-label{border-color:#bed2e4}.platform .workspace{background:0 0}.login-page:before{content:"";z-index:0;pointer-events:none;filter:drop-shadow(0 0 12px #238ee0);background:radial-gradient(circle at 51% 52%,#2aa9ff38 0 2%,#0000 7%),radial-gradient(circle at 25% 36%,#46b8ffb3 0 2px,#0000 5px),radial-gradient(circle at 73% 25%,#34a5ffb3 0 2px,#0000 5px),linear-gradient(104deg,#0000 0 18%,#38a8ff3d 19%,#0000 20% 45%,#40b2ff2e 46%,#0000 47% 73%,#50c1ff29 74%,#0000 75%) 0 0/240% 100%;animation:9s linear infinite loginCurrent,3.6s ease-in-out infinite energyBreath;position:absolute;inset:-4%;-webkit-mask:linear-gradient(12deg,#0000 0 27%,#000 28% 30%,#0000 31% 52%,#000 53% 55%,#0000 56% 77%,#000 78% 80%,#0000 81%);mask:linear-gradient(12deg,#0000 0 27%,#000 28% 30%,#0000 31% 52%,#000 53% 55%,#0000 56% 77%,#000 78% 80%,#0000 81%)}.login-brand:after{content:"";pointer-events:none;opacity:.55;background:linear-gradient(105deg,#0000 0 18%,#53beffa6 19%,#0000 20% 53%,#49aeff80 54%,#0000 55%) 0 0/220% 100%;animation:5.5s linear infinite lineCurrent;position:absolute;inset:18% 1% 18% 9%;-webkit-mask:linear-gradient(12deg,#0000 0 30%,#000 31% 33%,#0000 34% 57%,#000 58% 60%,#0000 61%);mask:linear-gradient(12deg,#0000 0 30%,#000 31% 33%,#0000 34% 57%,#000 58% 60%,#0000 61%)}.lab-path i{animation:3.2s ease-in-out infinite nodePulse}.lab-path div:nth-child(2n) i{animation-delay:.8s}.lab-path div:nth-child(3n) i{animation-delay:1.6s}@keyframes loginCurrent{to{background-position:-240% 0}}@keyframes energyBreath{50%{opacity:.6;filter:drop-shadow(0 0 24px #35a9ff)}}@keyframes lineCurrent{to{background-position:-220% 0}}@keyframes nodePulse{50%{border-color:#75c5ff;box-shadow:0 0 18px #43b0ff8c}}.home-hero{color:#fff;background:#071c37 url(/assets/brand/login-background.png) 50%/cover no-repeat;border-radius:18px;min-height:390px;margin-bottom:30px;padding:42px 44px 30px;position:relative;overflow:hidden;box-shadow:0 18px 45px #06264c2e}.home-hero:before{content:"";background:linear-gradient(90deg,#031329e6,#051c39ad 55%,#03112573);position:absolute;inset:0}.home-hero:after{content:"";background:linear-gradient(105deg,#0000 0 22%,#3ba7ff2e 23%,#0000 24% 64%,#3ba7ff21 65%,#0000 66%) 0 0/220% 100%;animation:8s linear infinite lineCurrent;position:absolute;inset:0}.home-hero>*{z-index:1;position:relative}.home-hero>span{color:#7fc8ff;letter-spacing:.08em;background:#0b3764bb;border:1px solid #3f83bd;border-radius:18px;padding:7px 12px;font-size:12px;font-weight:750;display:inline-block}.home-hero h1{margin:22px 0 8px;font-size:40px}.home-hero>p{color:#d4e5f5;max-width:700px;margin:0;font-size:16px}.hero-actions{gap:12px;margin-top:24px;display:flex}.hero-actions button{color:#fff;background:#ffffff12;border:1px solid #6e8eaa;border-radius:9px;min-height:46px;padding:0 20px;font-weight:750}.hero-metrics{grid-template-columns:repeat(4,minmax(130px,190px));gap:30px;display:grid;position:absolute;bottom:28px;left:44px;right:44px}.hero-metrics div{flex-direction:column;display:flex}.hero-metrics b{font-size:28px}.hero-metrics span{color:#b8cde1;margin-top:4px;font-size:13px}.all-skills{grid-template-columns:1fr 1fr;gap:2px 22px;display:grid}.all-skills>div{margin:9px 0}.next-step{background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 82%,#d9ecff));color:var(--ink);border:1px solid #c7ddf0}.next-step .recommend{color:#0870d3;font-size:12px;font-weight:800}.next-step h2{color:#165e9d}.next-step p{color:var(--muted);font-size:14px}.next-step .advice-evidence span{background:var(--soft);border:1px solid var(--border);color:var(--muted)}.next-step .advice-evidence b{color:var(--ink)}.suggestion-action{background:var(--card);color:#075fab;border:1px solid #1775cf;border-radius:9px;min-height:43px;padding:0 16px;font-size:14px;font-weight:800}.suggestion-action:hover{background:#eaf5ff}.radar polygon.radar-grid{stroke-width:1px}.radar polygon.level-0{fill:#0a4f911a;stroke:#225f9b}.radar polygon.level-1{fill:#1879d21a;stroke:#5a9ad3}.radar polygon.level-2{fill:#5bb2f524;stroke:#9cccf1}.radar polygon.radar-value{fill:#1179da33}.skill-picker{margin-bottom:16px}.skill-picker h2{margin:0 0 14px;font-size:17px}.skill-picker>div{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.skill-picker button{border:1px solid var(--border);background:var(--card);color:var(--ink);text-align:left;border-radius:10px;padding:12px}.skill-picker button.active{background:#e9f4ff;border-color:#1378da;box-shadow:inset 0 0 0 1px #1378da}.dark .skill-picker button.active{background:#183b5c}.skill-picker button span{justify-content:space-between;font-size:13px;font-weight:750;display:flex}.skill-picker button i,.event-bar i,.distribution-bars i,.experiment-progress i,.report-compare i{background:var(--border);border-radius:5px;height:6px;margin-top:9px;display:block;overflow:hidden}.skill-picker button em,.event-bar em,.distribution-bars em,.experiment-progress em,.report-compare em{background:#1778d6;height:100%;display:block}.skill-focus{margin-bottom:16px}.skill-focus-head{justify-content:space-between;align-items:flex-start;display:flex}.skill-focus-head>div>span{color:#1473ce;font-size:12px}.skill-focus-head h1{margin:8px 0;font-size:30px}.skill-focus-head p{color:var(--muted);font-size:15px}.skill-focus-head>button{border:0;border-radius:9px;padding:12px 18px}.skill-stat-row{grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0;display:grid}.skill-stat-row>span,.mini-metrics>span{background:var(--soft);border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:13px;font-size:12px}.skill-stat-row b,.mini-metrics b{color:var(--ink);margin-top:5px;font-size:18px;display:block}.skill-link-block{border-top:1px solid var(--border);padding-top:16px}.skill-link-block h3{font-size:15px}.skill-link-block>div{grid-template-columns:1fr 1fr;gap:10px;display:grid}.skill-link-block article{border:1px solid var(--border);border-radius:11px;grid-template-columns:90px 1fr auto;align-items:center;gap:12px;padding:10px;display:grid}.skill-link-block img{object-fit:contain;background:#eaf4fb;width:82px;height:65px}.skill-link-block article span{color:#1271ce;font-size:11px}.skill-link-block article b{font-size:14px}.skill-link-block article p{color:var(--muted);margin:5px 0 0;font-size:12px}.skill-link-block article button{color:#1269bb;background:var(--card);border:1px solid #1775cf;border-radius:8px;padding:9px}.skill-training-grid{grid-template-columns:1.2fr .8fr;gap:16px;margin-bottom:16px;display:grid}.mini-theory{border-left:1px solid var(--border);padding:22px}.mini-q>b{font-size:14px}.mini-q>div{grid-template-columns:1fr 1fr;display:grid}.mini-q button{text-align:left;width:auto;height:auto;min-height:38px;padding:8px;font-size:12px}.mini-q button.correct,.questions button.correct{color:#167642!important;background:#e5f7ec!important;border-color:#70c793!important}.mini-q button.wrong,.questions button.wrong{color:#bd3340!important;background:#fdebed!important;border-color:#e59aa2!important}.mini-q>p{color:var(--muted);font-size:12px;line-height:1.6}.mini-metrics{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;display:grid}.skill-history{margin-bottom:10px}.scroll-table{max-height:330px;overflow:auto}.scroll-table table{border-collapse:collapse;width:100%}.scroll-table th,.scroll-table td{text-align:left;border-bottom:1px solid var(--border);padding:11px 12px;font-size:12px}.scroll-table th{background:var(--soft);z-index:1;color:var(--muted);position:sticky;top:0}.rate-pill{color:#1265ac;background:#dceeff;border-radius:14px;padding:4px 9px;display:inline-block}.rate-pill.good{color:#28763d;background:#e3f5e9}.learning-metrics{grid-template-columns:repeat(5,1fr)}.learning-section{margin:28px 0}.learning-labs{grid-template-columns:1fr 1fr;gap:16px;display:grid}.learning-lab-card,.report-lab-card{background:var(--card);border:1px solid var(--border);border-radius:15px;overflow:hidden}.learning-lab-card{grid-template-columns:34% 1fr;display:grid}.learning-lab-image,.report-card-image{background:linear-gradient(145deg,#eef7fd,#dbeaf6);place-items:center;min-height:220px;display:grid;position:relative}.dark .learning-lab-image,.dark .report-card-image{background:linear-gradient(145deg,#1a2d41,#172538)}.learning-lab-image span,.report-card-image span{color:#1672c8;letter-spacing:.08em;font-size:11px;position:absolute;top:13px;left:14px}.learning-lab-image img,.report-card-image img{object-fit:contain;mix-blend-mode:multiply;width:82%;height:82%}.dark .learning-lab-image img,.dark .report-card-image img{mix-blend-mode:normal}.learning-lab-body{padding:20px}.learning-lab-body h2{font-size:18px}.learning-lab-body dl{grid-template-columns:1fr 1fr;gap:9px;margin:18px 0 0;display:grid}.learning-lab-body dl div{background:var(--soft);border-radius:8px;padding:10px}.learning-lab-body dt{color:var(--muted);font-size:11px}.learning-lab-body dd{margin:5px 0 0;font-size:14px;font-weight:750}.learning-skill{grid-template-columns:340px 1fr;align-items:center;gap:36px;display:grid}.learning-duo,.event-grid{grid-template-columns:1fr 1fr;gap:16px;margin:16px 0 28px;display:grid}.experiment-progress>div,.report-compare>div{margin:17px 0}.experiment-progress span,.report-compare span,.event-bar span,.distribution-bars span{justify-content:space-between;font-size:13px;display:flex}.event-metrics{grid-template-columns:repeat(4,1fr);margin-bottom:14px}.event-section>.section-title{margin-bottom:14px}.event-grid h3{margin:7px 0 15px;font-size:15px}.event-bar,.distribution-bars>div{margin:14px 0}.event-bar em{background:#dc8b23}.recent-events .scroll-table{max-height:360px}.overall-report{background:linear-gradient(125deg,#eef7ff,var(--card));align-items:center;gap:30px;margin-bottom:20px;padding:28px 34px;display:flex}.dark .overall-report{background:linear-gradient(125deg,#153553,var(--card))}.overall-report>div:last-child>span{color:#1673ce;letter-spacing:.12em;font-size:11px}.overall-report h2{margin:8px 0;font-size:26px}.overall-report p{color:var(--muted);font-size:14px}.overall-report small{color:var(--muted);font-size:12px}.report-lab-grid{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px;display:grid}.report-card-image{min-height:180px}.report-card-image img{width:48%;height:150px}.report-card-body{padding:19px}.report-card-body h2{font-size:18px}.ring-row{grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0;display:grid}.mini-ring-wrap{text-align:center}.mini-ring{--ring:#1678d4;background:conic-gradient(var(--ring) 0 var(--score),#e3eaf1 var(--score));border-radius:50%;place-items:center;width:92px;height:92px;margin:auto;display:grid;position:relative}.mini-ring:before{content:"";background:var(--card);border-radius:50%;position:absolute;inset:9px}.mini-ring strong{z-index:1;font-size:25px}.mini-ring.excellent{--ring:#087f87}.mini-ring.good{--ring:#1678d4}.mini-ring.fair{--ring:#52a6e5}.mini-ring.warn{--ring:#d99822}.mini-ring.danger{--ring:#d74a55}.mini-ring.pending{--ring:#d5dde5}.mini-ring-wrap>span{display:none}.mini-ring-wrap>small{color:var(--muted);margin-top:8px;font-size:11px;display:block}.mini-ring-wrap.large .mini-ring{width:142px;height:142px}.mini-ring-wrap.large .mini-ring strong{font-size:38px}.mini-ring-wrap.large>span{color:var(--muted);margin-top:8px;font-size:12px;display:block}.report-card-body>p{border-top:1px solid var(--border);color:var(--muted);padding-top:13px;font-size:12px}.report-compare{margin-bottom:20px}.report-compare em{background:#1678d4}.task-modal.upload-modal{width:min(1050px,94vw);min-height:620px}.submission-banner{color:#28597f;background:#e8f4ff;border:1px solid #7cb7eb;border-radius:10px;margin:12px 0;padding:12px 14px;font-size:13px}.submission-banner.approved,.submission-banner.approved{color:#236c40;background:#e6f7ed;border-color:#87c9a0}.submission-banner.returned{color:#a5323c;background:#fdebed;border-color:#e5a0a7}.dropzone{height:190px}.photo-grid{grid-template-columns:repeat(4,1fr);gap:12px;min-height:120px;margin:16px 0;display:grid}.photo-grid figure{border:1px solid var(--border);background:var(--soft);border-radius:10px;margin:0;position:relative;overflow:hidden}.photo-grid img{object-fit:cover;width:100%;height:125px}.photo-grid button{color:#fff;background:#24384dcc;border:0;border-radius:50%;width:28px;height:28px;position:absolute;top:7px;right:7px}.photo-grid figcaption{padding:8px;font-size:12px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.modal-actions button{border:1px solid var(--border);background:var(--card);min-height:42px;color:var(--ink);border-radius:8px;padding:0 18px;font-weight:700}.questions>div>p{color:var(--muted);font-size:12px}.question-editor{width:min(1040px,94vw)}.question-edit-list>section{border-top:1px solid var(--border);padding:14px 0}.question-edit-list label{color:var(--muted);font-size:12px}.question-edit-list input,.question-edit-list select{border:1px solid var(--border);background:var(--card);height:38px;color:var(--ink);border-radius:7px;width:calc(100% - 12px);margin:6px;padding:0 10px}.question-edit-list>section>div{grid-template-columns:1fr 1fr;display:grid}.review-theory-note{color:var(--muted);font-size:12px;line-height:1.7}@media (max-width:1200px){.hero-metrics{grid-template-columns:repeat(4,1fr)}.skill-picker>div{grid-template-columns:repeat(2,1fr)}.skill-training-grid,.learning-duo,.event-grid{grid-template-columns:1fr}.learning-metrics{grid-template-columns:repeat(3,1fr)}.ring-row{grid-template-columns:repeat(2,1fr)}}.login-page:before,.login-brand:after{display:none}.login-page .lab-path i{animation:none}.current-visual-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.login-current-layer{z-index:0;opacity:.82}.hero-current-layer{z-index:1;opacity:.68}.current-visual-layer path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}.current-background path{stroke:#459de721;stroke-width:1px;animation:4.8s ease-in-out infinite loginCircuitBreath}.current-background path:nth-child(2){animation-delay:-1.3s}.current-background path:nth-child(3){animation-delay:-2.7s}.current-background path:nth-child(4){animation-delay:-.8s}.current-background path:nth-child(5){animation-delay:-3.5s}.current-flow path{will-change:stroke-dashoffset,opacity}.flow-main{stroke:#70dfff;stroke-width:2.2px;stroke-dasharray:24 68;opacity:.82}.flow-secondary{stroke:#339dff;stroke-width:1.65px;stroke-dasharray:17 55;opacity:.58}.flow-faint{stroke:#76caff;stroke-width:1.2px;stroke-dasharray:12 48;opacity:.34}.flow-one{animation:3.8s linear infinite loginCurrentFlow}.flow-two{animation:4.6s linear -.9s infinite loginCurrentFlow}.flow-three{animation:5.2s linear -2.1s infinite loginCurrentFlow}.flow-four{animation:4.2s linear -1.4s infinite loginCurrentFlow}.flow-five{animation:5.6s linear -3.2s infinite loginCurrentFlow}.flow-six{animation:6.2s linear -2.6s infinite loginCurrentFlow}.flow-seven{animation:4.9s linear -1.8s infinite loginCurrentFlow}.device-current-arcs path{fill:none;vector-effect:non-scaling-stroke;stroke:#55c7ff;stroke-width:1.45px;stroke-dasharray:14 38;stroke-linecap:round;opacity:.44;will-change:stroke-dashoffset,opacity}.device-left-one{animation:4.8s linear -.8s infinite loginDeviceFlow}.device-left-two{animation:4.2s linear -2.1s infinite loginDeviceFlow}.device-right-one{animation:4.5s linear -1.4s infinite loginDeviceFlow}.device-right-two{animation:5.1s linear -2.8s infinite loginDeviceFlow}.device-right-three{animation:5.6s linear -.5s infinite loginDeviceFlow}.current-nodes circle{fill:#a9efff;opacity:.18;filter:drop-shadow(0 0 3px #36aaff);transform-box:fill-box;transform-origin:50%}.node-one{animation:3.8s ease-in-out -.35s infinite loginNodeResponse}.node-two{animation:4.6s ease-in-out -1.55s infinite loginNodeResponse}.node-three{animation:5.2s ease-in-out -2.8s infinite loginNodeResponse}.node-four{animation:6.1s ease-in-out -1.95s infinite loginNodeResponse}.login-energy-core{opacity:.62;filter:drop-shadow(0 0 12px #2f91ff47);animation:4.4s ease-in-out infinite loginEnergyBreath;transform:none}.brand-copy{position:relative}.brand-copy:before{content:"";z-index:-1;filter:blur(16px);pointer-events:none;background:linear-gradient(90deg,#020d2080,#03122933 72%,#0000);position:absolute;inset:-38px -54px -30px -64px}.login-reveal,.login-title-line,.login-lab-item,.login-panel{will-change:opacity,transform,filter;animation:.82s cubic-bezier(.16,1,.3,1) both loginFadeUp}.reveal-label{animation-delay:0s}.reveal-title-one{animation-delay:.12s}.reveal-title-two{animation-delay:.24s}.reveal-tagline{animation-delay:.38s}.reveal-labs{animation-delay:.52s}.reveal-foot{animation-delay:.94s}.login-title-line{display:block}.login-lab-item:first-child{animation-delay:.6s}.login-lab-item:nth-child(2){animation-delay:.68s}.login-lab-item:nth-child(3){animation-delay:.76s}.login-lab-item:nth-child(4){animation-delay:.84s}.login-side .login-panel{animation-name:loginPanelIn;animation-duration:.74s;animation-delay:.26s}.login-page .lab-path div{transition:background-color .22s,border-color .22s,transform .22s}.login-page .lab-path div:hover{transform:translate(3px)}@keyframes loginFadeUp{0%{opacity:0;filter:blur(5px);transform:translateY(24px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes loginPanelIn{0%{opacity:0;filter:blur(3px);transform:translate(12px)}to{opacity:1;filter:blur();transform:translate(0)}}@keyframes loginCurrentFlow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-184px}}@keyframes loginDeviceFlow{0%{stroke-dashoffset:0;opacity:.3}50%{opacity:.58}to{stroke-dashoffset:-104px;opacity:.3}}@keyframes loginCircuitBreath{0%,to{opacity:.45}50%{opacity:1}}@keyframes loginNodeResponse{0%,38%,62%,to{opacity:.16;transform:scale(1)}47%,53%{opacity:.92;transform:scale(1.07)}}@keyframes loginEnergyBreath{0%,to{opacity:.48;filter:drop-shadow(0 0 9px #2f91ff38)}50%{opacity:.7;filter:drop-shadow(0 0 18px #42bbff61)}}@media (max-width:1100px){.login-current-layer{opacity:.68}.login-brand h1{font-size:clamp(46px,5vw,64px)}.brand-copy:before{inset:-30px -32px -24px -38px}}@media (max-width:900px){.login-current-layer{opacity:.62;height:560px}.brand-copy:before{inset:-24px}.login-lab-item:nth-child(n){animation-delay:.58s}.login-side .login-panel{animation-delay:.18s}}@media (prefers-reduced-motion:reduce){.login-reveal,.login-title-line,.login-lab-item,.login-panel,.current-background path,.current-flow path,.device-current-arcs path,.current-nodes circle,.login-energy-core{opacity:1;filter:none;transform:none;animation:none!important}.current-flow path,.device-current-arcs path{stroke-dashoffset:0;opacity:.3}.login-current-layer,.hero-current-layer{opacity:.5}}.home-hero,.teacher-hero{background-position:50% 78%}.home-hero{min-height:390px}.home-hero:after,.teacher-hero:after{display:none}.home-hero:before,.teacher-hero:before{z-index:1}.home-hero>.hero-current-layer,.teacher-hero>.hero-current-layer{z-index:2;position:absolute;inset:0}.home-hero>:not(.hero-current-layer),.teacher-hero>:not(.hero-current-layer){z-index:3;position:relative}.home-hero>.hero-metrics{position:absolute;bottom:28px;left:44px;right:44px}.home-lab-strip .lab-card{cursor:pointer;flex-direction:column;display:flex}.home-lab-strip .lab-body{flex-direction:column;flex:1;display:flex}.home-lab-strip .lab-title{min-width:0}.home-lab-strip .lab-title h3{overflow-wrap:anywhere;min-width:0}.home-lab-strip .lab-body>p{height:auto;min-height:38px}.home-lab-strip .lab-progress{margin-top:auto;padding-top:14px}.home-lab-strip .lab-buttons{margin-top:15px}.home-lab-strip .lab-card:focus-visible{outline-offset:3px;outline:3px solid #4da6f1}.home-lab-strip .lab-image{height:176px}.home-lab-strip .lab-image img{object-fit:contain;width:90%;height:82%}.home-lab-strip .lab-card:nth-child(3) .lab-image img{width:88%;height:97%}.home-lab-strip .lab-card:nth-child(4) .lab-image img{width:82%;height:97%}.skill-overview{overflow:visible}.home-skill-terrain{width:100%;min-width:0;padding-top:4px;position:relative}.home-skill-terrain-svg{width:100%;height:auto;display:block;overflow:visible}.terrain-grid line{stroke:color-mix(in srgb,var(--border) 76%,transparent);stroke-width:1px;stroke-dasharray:4 8}.terrain-shadows ellipse{fill:#1a4c731a;filter:blur(3px)}.terrain-pattern-bg{fill:#e5f2fb}.terrain-pattern-line{stroke:#a8cce6;stroke-width:3px;opacity:.48}.terrain-connector-front,.terrain-block-front{fill:url(#skill-terrain-hatch);stroke:#9fc7e4;stroke-width:1px;transition:fill .28s,stroke .28s,filter .28s}.terrain-connector-top,.terrain-block-top{fill:#d5ebf8;stroke:#a7cee8;stroke-width:1px;transition:fill .28s,stroke .28s}.terrain-block-side{fill:#a9cee6;stroke:#8db9d6;stroke-width:1px;transition:fill .28s,stroke .28s}.terrain-block{cursor:pointer;outline:none}.terrain-block.active .terrain-block-front{fill:url(#skill-terrain-active);stroke:#0864bb;filter:drop-shadow(0 9px 10px #1063ae47)}.terrain-block.active .terrain-block-top{fill:url(#skill-terrain-active-top);stroke:#2c91dd}.terrain-block.active .terrain-block-side{fill:#0d5ca8;stroke:#084e91}.terrain-connectors g.active .terrain-connector-front{fill:#3794da52;stroke:#62a9dd}.terrain-connectors g.active .terrain-connector-top{fill:#a5d8f5;stroke:#6cb3e4}.terrain-value,.terrain-name{fill:var(--ink);text-anchor:middle;pointer-events:none;font-family:inherit;transition:fill .28s,font-weight .28s,font-size .28s}.terrain-value{font-size:20px;font-weight:780}.terrain-name{font-size:16px;font-weight:700}.terrain-block.active .terrain-value{fill:#0568c2;font-size:23px;font-weight:900}.terrain-block.active .terrain-name{fill:#075fae;font-weight:900}.terrain-baseline{stroke:#82afd0;stroke-width:1.4px}.terrain-tooltip{z-index:8;color:#eaf6ff;pointer-events:none;background:#0b315f;border-radius:9px;width:max-content;max-width:210px;padding:10px 12px;font-size:12px;line-height:1.45;position:absolute;transform:translate(-50%,-100%);box-shadow:0 10px 24px #04214140}.terrain-tooltip b,.terrain-tooltip span,.terrain-tooltip small{display:block}.terrain-tooltip b{color:#fff;margin-bottom:2px;font-size:14px}.terrain-tooltip small{color:#b3d0e7;margin-top:3px}.terrain-tooltip.edge-left{transform:translate(-8%,-100%)}.terrain-tooltip.edge-right{transform:translate(-92%,-100%)}.dark .terrain-pattern-bg{fill:#20384f}.dark .terrain-pattern-line{stroke:#456d8d;opacity:.5}.dark .terrain-connector-front,.dark .terrain-block-front{stroke:#3f6685}.dark .terrain-connector-top,.dark .terrain-block-top{fill:#294a64;stroke:#426c8c}.dark .terrain-block-side{fill:#1f3c55;stroke:#385d79}.dark .terrain-grid line{stroke:#29435a}.dark .terrain-shadows ellipse{fill:#00000047}.dark .terrain-value,.dark .terrain-name{fill:#bdd1e3}.dark .terrain-block.active .terrain-value,.dark .terrain-block.active .terrain-name{fill:#7fc8ff}.dark .terrain-connectors g.active .terrain-connector-front{fill:#287dc066}.dark .terrain-connectors g.active .terrain-connector-top{fill:#386e98}.dark .terrain-baseline{stroke:#416781}.task-card[id]{scroll-margin-top:94px}@media (max-width:900px){.home-hero{min-height:410px}.home-lab-strip .lab-image{height:166px}.terrain-value{font-size:18px}.terrain-name{font-size:14px}}@media (prefers-reduced-motion:reduce){.home-skill-terrain *{transition:none!important}}.task-grid .task-photo>span{letter-spacing:.06em}.report-lab-card .report-card-image{min-height:220px}.report-lab-card .report-card-image img{object-fit:contain;mix-blend-mode:multiply;max-width:none}.report-lab-1 .report-card-image img{width:70%;height:190px}.report-lab-2 .report-card-image img{width:68%;height:192px}.report-lab-3 .report-card-image img{width:50%;height:202px}.report-lab-4 .report-card-image img{width:46%;height:208px}.dark .report-lab-card .report-card-image img{mix-blend-mode:normal}.report-score-steps{isolation:isolate;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:10px;height:230px;margin:16px 0 18px;padding:38px 10px 5px 4px;display:grid;position:relative;overflow:visible}.report-score-steps:before{content:"分项成绩逐级汇聚 → 最终加权成绩";color:var(--muted);letter-spacing:.03em;font-size:12px;font-weight:700;position:absolute;top:4px;left:3px}.report-score-step{--face:#9bd8ed;--top-face:#c6ebf6;--side-face:#63abc7;background:linear-gradient(145deg,var(--top-face),var(--face) 34%,color-mix(in srgb,var(--face) 88%,#176da4));color:#124a68;text-align:center;border-radius:5px 5px 2px 2px;flex-direction:column;justify-content:center;align-items:center;min-width:0;height:104px;padding:14px 7px 10px;display:flex;position:relative;box-shadow:0 12px 19px #114f7821}.report-score-step:before{content:"";z-index:-1;background:linear-gradient(90deg,var(--top-face),color-mix(in srgb,var(--top-face) 80%,#fff));transform-origin:0 100%;border-radius:4px 3px 0 0;height:11px;position:absolute;top:-9px;left:5px;right:-7px;transform:skew(-38deg)}.report-score-step:after{content:"";z-index:-2;background:linear-gradient(180deg,var(--side-face),color-mix(in srgb,var(--side-face) 76%,#174f78));transform-origin:0 0;border-radius:0 3px 3px 0;width:9px;position:absolute;top:-4px;bottom:0;right:-8px;transform:skewY(-38deg)}.report-score-step.step-2{--face:#5dbddd;--top-face:#92d6e9;--side-face:#358dac;color:#073f5c;height:128px}.report-score-step.step-3{--face:#2a86cf;--top-face:#62ace2;--side-face:#165e99;color:#fff;height:152px}.report-score-step.step-4{--face:#0e5ba7;--top-face:#4388c2;--side-face:#073e75;color:#fff;height:180px;box-shadow:0 16px 26px #094b8840}.report-score-step>span,.report-score-step>strong,.report-score-step>small{z-index:1;max-width:100%;position:relative}.report-score-step>span{white-space:nowrap;font-size:13px;font-weight:800}.report-score-step>strong{white-space:nowrap;margin:7px 0 5px;font-size:22px;line-height:1.15}.report-score-step>small{opacity:.85;white-space:nowrap;font-size:11px;font-weight:700}.report-score-step>i{z-index:4;background:var(--card);color:#2579bf;border:1px solid #8db9de;border-radius:50%;place-items:center;width:24px;height:24px;font-size:15px;font-style:normal;display:grid;position:absolute;top:-21px;right:-18px;box-shadow:0 5px 12px #1453871f}.report-score-step.pending{--face:#d7e1ea;--top-face:#edf2f6;--side-face:#aab9c6;color:#53687a;box-shadow:0 9px 16px #3d53661a}.report-score-step.pending>strong{font-size:15px}.dark .report-score-step.step-1:not(.pending){--face:#367f9b;--top-face:#579db7;--side-face:#245f77;color:#effaff}.dark .report-score-step.step-2:not(.pending){--face:#287fa1;--top-face:#4da0bc;--side-face:#1b607c;color:#f0fbff}.dark .report-score-step.step-3:not(.pending){--face:#236da9;--top-face:#468fc4;--side-face:#174b78}.dark .report-score-step.step-4:not(.pending){--face:#174f88;--top-face:#3975a8;--side-face:#0c345e}.dark .report-score-step.pending{--face:#2c4053;--top-face:#3d5265;--side-face:#203242;color:#d4e1ec}.dark .report-score-step>i{color:#77b8ee;background:#17283b;border-color:#456c90}.report-card-body>p{margin-bottom:0;line-height:1.6}@media (max-width:1400px){.report-score-steps{gap:8px;padding-right:8px}.report-score-step>span{font-size:12px}.report-score-step>strong{font-size:19px}.report-score-step>small{font-size:10px}}@media (max-width:1180px){.report-lab-grid{grid-template-columns:1fr}.report-score-step>span{font-size:13px}.report-score-step>strong{font-size:22px}.report-score-step>small{font-size:11px}}@media (max-width:720px){.report-lab-card .report-card-image{min-height:190px}.report-lab-1 .report-card-image img,.report-lab-2 .report-card-image img{height:165px}.report-lab-3 .report-card-image img,.report-lab-4 .report-card-image img{height:178px}.report-score-steps{gap:6px;height:215px;padding-left:0;padding-right:5px}.report-score-step{height:92px;padding-inline:3px}.report-score-step.step-2{height:112px}.report-score-step.step-3{height:132px}.report-score-step.step-4{height:154px}.report-score-step>span{font-size:11px}.report-score-step>strong{font-size:17px}.report-score-step>small{font-size:9px}.report-score-step>i{display:none}}.task-grid .task-info{flex-direction:column;display:flex}.task-grid .task-info>.lab-progress{margin-top:auto}.skill-training-page{padding-bottom:8px}.skill-training-page>.page-head{margin-bottom:14px}.skill-training-page .panel{padding:16px 18px}.skill-training-page .section-title,.skill-training-page .skill-picker{margin-bottom:12px}.skill-training-page .skill-picker h2{margin:0 0 10px;font-size:16px}.skill-training-page .skill-picker>div{grid-template-columns:repeat(8,minmax(0,1fr));gap:7px;display:grid}.skill-training-page .skill-picker button{border:1px solid var(--border);background:var(--card);min-height:42px;color:var(--ink);text-align:center;white-space:nowrap;border-radius:9px;padding:8px 5px;font-size:14px;font-weight:700;transition:all .18s}.skill-training-page .skill-picker button:hover{background:color-mix(in srgb,var(--soft) 72%,#dcefff);border-color:#77afe0}.skill-training-page .skill-picker button.active{color:#0861b0;background:#e6f2fd;border-color:#1678d1;box-shadow:inset 0 0 0 1px #1678d1}.dark .skill-training-page .skill-picker button.active{color:#8bceff;background:#183c5c}.skill-training-page .skill-focus{margin-bottom:12px}.skill-training-page .skill-focus-head{align-items:center;gap:18px}.skill-training-page .skill-focus-head h1{margin:4px 0;font-size:25px}.skill-training-page .skill-focus-head p{margin:0;font-size:14px}.skill-training-page .skill-focus-head>button{white-space:nowrap;padding:10px 15px}.skill-training-page .skill-stat-row{gap:8px;margin:13px 0}.skill-training-page .skill-stat-row>span{justify-content:space-between;align-items:center;padding:9px 11px;font-size:12px;display:flex}.skill-training-page .skill-stat-row b{margin:0;font-size:19px}.skill-training-page .skill-link-block{padding-top:12px}.skill-training-page .skill-link-block h3{margin:0 0 9px}.skill-training-page .skill-link-block>div{gap:8px}.skill-training-page .skill-link-block article{grid-template-columns:68px 1fr auto;gap:9px;padding:7px 9px}.skill-training-page .skill-link-block img{width:62px;height:48px}.skill-training-page .skill-link-block article button{white-space:nowrap;padding:8px 10px}.skill-practice-grid{grid-template-columns:minmax(0,1.62fr) minmax(330px,.9fr);align-items:stretch;gap:12px;margin-bottom:14px;display:grid}.skill-training-page .mini-theory,.skill-training-page .compact-history{min-height:400px;max-height:500px;margin:0}.skill-training-page .mini-theory{overflow:auto}.theory-refresh{background:var(--card);color:#1269bb;border:1px solid #1678d1;border-radius:8px;padding:7px 12px;font-weight:750}.theory-empty{text-align:center;border:1px dashed var(--border);background:var(--soft);height:270px;color:var(--muted);border-radius:10px;place-content:center;display:grid}.theory-empty b{color:var(--ink);margin-bottom:8px;font-size:17px}.theory-empty span{max-width:420px;font-size:13px}.skill-training-page .mini-q{margin-bottom:10px}.skill-training-page .mini-q>b{justify-content:space-between;gap:12px;font-size:14px;display:flex}.skill-training-page .mini-q>b small{color:#1473ce;flex:none;font-size:11px}.skill-training-page .mini-q>div{gap:6px;margin-top:6px}.skill-training-page .mini-q button{min-height:34px;padding:6px 8px;font-size:12px}.skill-training-page .mini-q>p{margin:5px 0 0}.compact-history{flex-direction:column;display:flex}.skill-history-scroll{min-height:0;max-height:410px;padding-right:3px;overflow:auto}.skill-history-scroll>article{border-bottom:1px solid var(--border)}.skill-history-scroll>article>button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:1fr 1fr auto;align-items:center;gap:8px;padding:10px 5px;display:grid}.skill-history-scroll>article>button:hover{background:var(--soft)}.skill-history-scroll button span b,.skill-history-scroll button span small{display:block}.skill-history-scroll button span b{font-size:12px}.skill-history-scroll button span small{color:var(--muted);margin-top:3px;font-size:11px}.skill-history-scroll button em{color:#1473ce;font-size:11px;font-style:normal}.history-question-detail{background:var(--soft);padding:2px 8px 10px}.history-question-detail>div{border-bottom:1px dashed var(--border);padding:8px}.history-question-detail b,.history-question-detail span{font-size:11px;line-height:1.5;display:block}.history-question-detail span{margin-top:3px}.history-question-detail .right{color:#21804a}.history-question-detail .wrong{color:#c5454d}.skill-analytics>.section-title{margin:0 0 10px}.skill-analytics-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.skill-training-page .analysis-card{padding:15px 17px}.analysis-card h3{margin:0 0 10px;font-size:16px}.analysis-metrics{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.theory-analysis .analysis-metrics{grid-template-columns:repeat(5,1fr)}.analysis-metrics span{border:1px solid var(--border);background:var(--soft);color:var(--muted);border-radius:8px;padding:7px 8px;font-size:11px}.analysis-metrics b{color:var(--ink);margin-top:3px;font-size:16px;display:block}.experiment-3d-chart{border-bottom:1px solid var(--border);perspective:500px;align-items:flex-end;gap:10px;height:168px;margin-top:8px;padding:18px 10px 23px;display:flex}.experiment-3d-chart>span{flex:1;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.experiment-3d-chart>span>i{width:68%;height:var(--bar-height);background:linear-gradient(#62b5ed,#2079ce);border-radius:3px 3px 1px 1px;min-height:28px;position:relative;transform:skewY(-1deg);box-shadow:8px 7px 12px #115b9926}.experiment-3d-chart>span>i:before{content:"";transform-origin:0 100%;background:#9bd4f5;height:9px;position:absolute;top:-8px;left:6px;right:-7px;transform:skew(-38deg)}.experiment-3d-chart>span>i:after{content:"";transform-origin:0 0;background:#1463ad;width:8px;height:calc(100% + 4px);position:absolute;top:-4px;right:-8px;transform:skewY(-43deg)}.experiment-3d-chart b{color:var(--ink);font-size:11px;font-style:normal;position:absolute;top:-25px;left:50%;transform:translate(-50%)}.experiment-3d-chart small{white-space:nowrap;color:var(--muted);font-size:10px;position:absolute;bottom:-19px}.lab-distribution{gap:12px;margin-top:10px;display:flex}.lab-distribution>span{flex:1;grid-template-columns:auto minmax(45px,1fr) auto;align-items:center;gap:6px;font-size:11px;display:grid}.lab-distribution i{background:var(--border);border-radius:5px;height:5px;overflow:hidden}.lab-distribution em{background:#2386da;height:100%;display:block}.lab-distribution b{font-size:11px}.theory-area{width:100%;height:125px;margin:7px 0 2px;display:block;overflow:visible}.theory-area polyline{fill:none;stroke:#1b7fd5;stroke-width:3px;filter:drop-shadow(0 4px 4px #1564a82e)}.theory-area circle{fill:#fff;stroke:#197bd0;stroke-width:3px;transition:all .18s}.theory-area circle:hover{r:7;fill:#197bd0}.theory-analysis h4{margin:2px 0 6px;font-size:13px}.wrong-points{gap:5px;display:grid}.wrong-points>span{background:var(--soft);border-radius:6px;grid-template-columns:20px 1fr auto;align-items:center;gap:6px;min-height:25px;padding:3px 7px;display:grid;position:relative;overflow:hidden}.wrong-points>span>em{width:var(--wrong-width);z-index:0;background:linear-gradient(90deg,#2587d72e,#2587d70d);position:absolute;inset:0 auto 0 0}.wrong-points i,.wrong-points b,.wrong-points small{z-index:1;position:relative}.wrong-points i{color:#1473ce;font-style:normal}.wrong-points b{font-size:11px}.wrong-points small{color:var(--muted);font-size:10px}.dark .skill-training-page .theory-area circle{fill:#162a40}.dark .skill-training-page .theory-empty,.dark .skill-training-page .history-question-detail{background:#14263a}.dark .skill-training-page .experiment-3d-chart>span>i{background:linear-gradient(#438fc7,#205f9d)}.dark .skill-training-page .experiment-3d-chart>span>i:before{background:#5ea6d5}.dark .skill-training-page .experiment-3d-chart>span>i:after{background:#174a78}@media (max-width:1180px){.skill-practice-grid,.skill-analytics-grid{grid-template-columns:1fr}.skill-training-page .mini-theory,.skill-training-page .compact-history{min-height:auto;max-height:none}.skill-history-scroll{max-height:420px}}@media (max-width:1050px){.skill-training-page .skill-picker>div{grid-template-columns:repeat(4,1fr)}}@media (max-width:760px){.skill-training-page .skill-picker>div{grid-template-columns:repeat(2,1fr)}.skill-training-page .skill-focus-head{align-items:flex-start}.skill-training-page .skill-focus-head,.skill-training-page .skill-link-block>div{grid-template-columns:1fr;display:grid}.skill-training-page .skill-stat-row{grid-template-columns:1fr 1fr}.skill-practice-grid{grid-template-columns:1fr}.analysis-metrics,.theory-analysis .analysis-metrics{grid-template-columns:1fr 1fr}.skill-training-page .skill-link-block article{grid-template-columns:56px 1fr}.skill-training-page .skill-link-block article button{grid-column:1/-1}.skill-history-scroll>article>button{grid-template-columns:1fr auto}.skill-history-scroll>article>button span:nth-child(2){display:none}}.learning-page,.reports-page{padding-bottom:4px}.learning-tabs{border-bottom:1px solid var(--border);gap:8px;margin:-8px 0 16px;padding-bottom:10px;display:flex}.learning-tabs button{border:1px solid var(--border);background:var(--card);min-width:132px;min-height:42px;color:var(--muted);border-radius:9px;padding:0 18px;font-size:14px;font-weight:750}.learning-tabs button.active{color:#0b63b1;background:#e7f2fd;border-color:#1677d1;box-shadow:inset 0 0 0 1px #1677d1}.dark .learning-tabs button.active{color:#8bcfff;background:#183b5b}.learning-page .learning-metrics{grid-template-columns:repeat(4,1fr);margin-bottom:20px}.learning-page .learning-section{margin:20px 0}.learning-page .learning-lab-body{padding:16px}.learning-page .learning-lab-body dl{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px}.learning-page .learning-lab-body dt{font-size:11px}.learning-page .learning-lab-body dd{margin-top:4px;font-size:14px}.learning-page .learning-lab-image span{letter-spacing:.04em;font-size:12px;font-weight:800}.learning-master-grid{grid-template-columns:1fr 1fr;gap:16px;margin:20px 0;display:grid}.learning-radar-panel,.learning-progress-panel{min-height:330px}.learning-radar-panel .radar{margin-top:14px}.experiment-progress-3d{gap:18px;padding:10px 4px;display:grid}.experiment-progress-item{outline:none;position:relative}.experiment-progress-item:hover,.experiment-progress-item:focus{z-index:7}.experiment-progress-item>span{color:var(--ink);justify-content:space-between;gap:18px;font-size:13px;font-weight:700;display:flex}.experiment-progress-item>span b{color:#0e69bd;font-size:15px}.experiment-progress-item>i{border:1px solid color-mix(in srgb,var(--border) 76%,#8db8dc);background:linear-gradient(180deg,color-mix(in srgb,var(--soft) 76%,#fff),var(--border));border-radius:7px;height:13px;margin-top:8px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 2px 2px #ffffffb3,0 4px 7px #1d4d7317}.experiment-progress-item>i>em{background:linear-gradient(#58adf0 0,#1678d2 55%,#0d63b7 100%);border-radius:6px;height:100%;transition:all .2s;display:block;position:relative;box-shadow:inset 0 2px 1px #ffffff59,0 3px 8px #0f67b43d}.experiment-progress-item>i>em:after{content:"";background:#ffffff73;border-radius:2px;height:2px;position:absolute;inset:1px 5px auto}.experiment-progress-item:hover>i>em,.experiment-progress-item:focus>i>em{filter:saturate(1.2)brightness(.92);box-shadow:inset 0 2px 1px #fff6,0 4px 11px #0a549759}.experiment-progress-item:hover>span b,.experiment-progress-item:focus>span b{color:#0757a0;font-weight:900}.progress-tooltip{z-index:8;color:#e9f5ff;opacity:0;visibility:hidden;pointer-events:none;background:#07284cfa;border:1px solid #285b88;border-radius:8px;min-width:210px;padding:9px 11px;transition:all .18s;position:absolute;bottom:35px;right:0;transform:translateY(5px);box-shadow:0 10px 22px #052b4f4d}.experiment-progress-item:hover .progress-tooltip,.experiment-progress-item:focus .progress-tooltip{opacity:1;visibility:visible;transform:none}.progress-tooltip b,.progress-tooltip span,.progress-tooltip small{display:block}.progress-tooltip b{font-size:13px}.progress-tooltip span{color:#c5dced;margin:2px 0 4px;font-size:11px}.progress-tooltip small{color:#e5f2fb;font-size:11px;line-height:1.45}.learning-heatmap-panel{margin:0 0 22px}.learning-heatmap{grid-template-columns:92px repeat(8,minmax(68px,1fr));gap:7px}.learning-heatmap>b{text-align:center;color:var(--muted);font-size:12px;line-height:1.25}.learning-heatmap .heat-row>span{color:var(--ink);font-size:13px;font-weight:750}.learning-heatmap .heat-row button{height:42px;font-size:12px;font-weight:750}.learning-events-view .event-section:first-child{margin-top:18px}.learning-events-view .event-section:last-child{margin-bottom:4px}.reports-page .overall-report{margin-bottom:16px;padding:22px 28px}.reports-page .report-lab-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:0}.reports-page .report-lab-card{min-width:0}.reports-page .report-card-image{min-height:126px}.reports-page .report-card-image img{width:72%;height:110px}.reports-page .report-lab-1 .report-card-image img,.reports-page .report-lab-2 .report-card-image img{width:78%;height:110px}.reports-page .report-lab-3 .report-card-image img,.reports-page .report-lab-4 .report-card-image img{width:56%;height:116px}.reports-page .report-card-body{padding:13px}.reports-page .report-card-body h2{font-size:15px;line-height:1.35}.reports-page .lab-title{align-items:flex-start;gap:5px;min-height:48px}.reports-page .lab-title .pill{white-space:nowrap;font-size:10px}.reports-page .report-score-steps{gap:6px;height:200px;margin:10px 0 12px;padding:34px 3px 5px}.reports-page .report-score-steps:before{content:"分项百分制成绩 · 高度按实际分数映射";font-size:10px}.reports-page .report-score-step{height:var(--score-height);min-height:58px;padding:8px 3px 6px;transition:height .25s}.reports-page .report-score-step.step-2,.reports-page .report-score-step.step-3,.reports-page .report-score-step.step-4{height:var(--score-height)}.reports-page .report-score-step>span{white-space:normal;font-size:10px;line-height:1.2}.reports-page .report-score-step>strong{margin:5px 0 3px;font-size:14px}.reports-page .report-score-step>small{white-space:normal;font-size:9px}.reports-page .report-score-step>i{width:19px;height:19px;font-size:11px;top:-16px;right:-12px}.reports-page .report-score-step.pending{height:var(--score-height);box-shadow:none;background:linear-gradient(145deg,#edf2f6b8,#c5d2dd94);border:1px dashed #98aaba}.dark .reports-page .report-score-step.pending{background:linear-gradient(145deg,#3d5265a6,#233444b8)}.reports-page .report-card-body>p{padding-top:10px;font-size:11px;line-height:1.5}@media (max-width:1380px){.reports-page .report-lab-grid{gap:9px}.reports-page .report-card-body{padding:11px}.reports-page .report-score-steps{gap:4px}.reports-page .report-score-step>i{display:none}}@media (max-width:1120px){.learning-master-grid{grid-template-columns:1fr}.learning-heatmap{overflow-x:auto}.reports-page .report-lab-grid{grid-template-columns:repeat(2,1fr)}.reports-page .report-card-body h2{font-size:17px}.reports-page .report-score-step>span{font-size:12px}.reports-page .report-score-step>strong{font-size:18px}.reports-page .report-score-step>small{font-size:10px}}@media (max-width:760px){.learning-page .learning-metrics,.learning-page .learning-lab-body dl{grid-template-columns:1fr 1fr}.learning-tabs button{flex:1;min-width:0}.learning-heatmap{min-width:790px}.learning-heatmap-panel{overflow:auto}.reports-page .report-lab-grid{grid-template-columns:1fr}}.platform.platform{--lg-page-bg:#eef4fa;--lg-page-wash:#a8d8ff2e;--lg-surface:#ffffffad;--lg-surface-soft:#f1f7fd94;--lg-surface-hover:#ffffffd1;--lg-surface-active:#dbedffc7;--lg-border:#4678be29;--lg-border-hover:#3b82f657;--lg-highlight:#ffffffc7;--lg-shadow:0 10px 28px #23487014,inset 0 1px 0 var(--lg-highlight);--lg-shadow-soft:0 5px 16px #2348700e,inset 0 1px 0 #ffffff9e;--lg-header:#092446f0;--lg-header-border:#85bcf438;--lg-sidebar:#deecf8d1;--lg-sidebar-border:#4678be26;--lg-input:#ffffff94;--lg-table-head:#e0eefb9e;--lg-blue:#3b82f6;--lg-blue-hover:#2f75df;--lg-blue-active:#245fb9;--lg-text:#12253c;--lg-text-secondary:#536b84;--lg-text-muted:#71859a;--bg:var(--lg-page-bg);--card:var(--lg-surface);--soft:var(--lg-surface-soft);--border:var(--lg-border);--ink:var(--lg-text);--muted:var(--lg-text-secondary);--side:var(--lg-sidebar);--top:var(--lg-header);--side-ink:#294b69;--side-active:var(--lg-surface-active);background-color:var(--lg-page-bg);background-image:radial-gradient(circle at 84% 7%,var(--lg-page-wash),transparent 34%),linear-gradient(135deg,#ffffff52,transparent 52%)}.platform.platform.dark{--lg-page-bg:#07101d;--lg-page-wash:#2d70be1f;--lg-surface:#0e1c2f9e;--lg-surface-soft:#12243a8a;--lg-surface-hover:#172d46b8;--lg-surface-active:#1c4268b3;--lg-border:#82b4ff2e;--lg-border-hover:#5aa7ff6b;--lg-highlight:#ffffff13;--lg-shadow:0 14px 34px #00040c3d,inset 0 1px 0 var(--lg-highlight);--lg-shadow-soft:0 7px 20px #00040c2e,inset 0 1px 0 #ffffff0e;--lg-header:#050e1beb;--lg-header-border:#82b4ff2e;--lg-sidebar:#0b1b2ec7;--lg-sidebar-border:#82b4ff29;--lg-input:#0b192b94;--lg-table-head:#182d459e;--lg-blue:#5aa7ff;--lg-blue-hover:#76b7ff;--lg-blue-active:#3b82f6;--lg-text:#edf6ff;--lg-text-secondary:#b4c7da;--lg-text-muted:#8ca4bb;--bg:var(--lg-page-bg);--card:var(--lg-surface);--soft:var(--lg-surface-soft);--border:var(--lg-border);--ink:var(--lg-text);--muted:var(--lg-text-secondary);--side:var(--lg-sidebar);--top:var(--lg-header);--side-ink:#c8dbed;--side-active:var(--lg-surface-active)}.platform.platform>.topbar{background-color:var(--lg-sidebar);border-color:var(--lg-sidebar-border);box-shadow:inset 0 -1px 0 var(--lg-sidebar-border),inset 0 1px 0 var(--lg-highlight);-webkit-backdrop-filter:blur(18px)saturate(120%);backdrop-filter:blur(18px)saturate(120%);background-image:linear-gradient(155deg,#ffffff2e,#0000 46%)}.platform.platform>.topbar :where(.theme-toggle,.logout){background-color:var(--lg-surface-soft);border-color:var(--lg-sidebar-border);color:var(--lg-text-secondary);box-shadow:inset 0 1px 0 var(--lg-highlight);background-image:linear-gradient(#ffffff1f,#0000);border-radius:8px}.platform.platform>.topbar :where(.theme-toggle,.logout):hover{background-color:var(--lg-surface-hover);border-color:var(--lg-border-hover)}.platform.platform>.topbar .identity{border-color:var(--lg-sidebar-border)}.platform.platform:not(.dark)>.topbar :where(.total-progress,.total-progress small,.total-progress b,.identity b,.identity small){color:var(--lg-text-secondary)}.platform.platform:not(.dark)>.topbar .top-brand b{color:var(--lg-text)}.platform.platform.dark>.topbar :where(.theme-toggle,.logout){color:#e9f4ff;background-color:#ffffff0e}.platform.platform.dark>.topbar :where(.total-progress,.total-progress small,.identity small){color:#a9bfd3}.platform.platform.dark>.topbar :where(.total-progress b,.identity b){color:#eef7ff}.platform.platform>.topbar .top-logo{box-shadow:none;background:0 0}.platform.platform>.topbar .top-logo img{object-fit:contain;width:100%;height:100%;display:block}.platform.platform.dark>.topbar .top-logo img{filter:saturate(.72)brightness(1.34)contrast(.92)}.platform.platform>.topbar .top-title-stroke{white-space:nowrap;color:#0000;display:inline-block;position:relative}.platform.platform>.topbar .top-title-outline{white-space:nowrap;color:#0000;position:absolute;inset:0}.platform.platform>.topbar .top-title-outline i{color:#0000;-webkit-text-stroke:.7px #2563eb;opacity:0;clip-path:inset(0 100% 0 0);font-style:normal;animation:.38s cubic-bezier(.22,1,.36,1) forwards topTitleStrokeDraw;display:inline-block}.platform.platform>.topbar .top-title-fill{color:#162033;clip-path:inset(0 100% 0 0);animation:.56s cubic-bezier(.22,1,.36,1) .76s forwards topTitleFillWipe;display:block}.platform.platform.dark>.topbar .top-title-outline i{-webkit-text-stroke-color:#5aa7ff}.platform.platform.dark>.topbar .top-title-fill{color:#f8fafc}@keyframes topTitleStrokeDraw{to{opacity:1;clip-path:inset(0)}}@keyframes topTitleFillWipe{to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.platform.platform>.topbar .top-title-outline i{opacity:1;clip-path:none;animation:none}.platform.platform>.topbar .top-title-fill{clip-path:none;animation:none}}.platform.platform>.sidebar{background-color:var(--lg-sidebar);border-color:var(--lg-sidebar-border);box-shadow:inset -1px 0 0 var(--lg-sidebar-border),inset 0 1px 0 var(--lg-highlight);-webkit-backdrop-filter:blur(18px)saturate(120%);backdrop-filter:blur(18px)saturate(120%);background-image:linear-gradient(155deg,#ffffff2e,#0000 46%)}.platform.platform>.sidebar button,.platform.platform>.sidebar a{box-shadow:none;background-color:#0000;border-color:#0000}.platform.platform>.sidebar button:hover,.platform.platform>.sidebar a:hover{background-color:var(--lg-surface-soft);border-color:var(--lg-border);box-shadow:inset 0 1px 0 var(--lg-highlight)}.platform.platform>.sidebar button.active{background-color:var(--lg-surface-active);border-color:var(--lg-border-hover);color:var(--lg-blue-active);box-shadow:inset 0 1px 0 var(--lg-highlight),0 5px 14px #1f63a41a;background-image:linear-gradient(135deg,#5aa7ff33,#ffffff1a)}.platform.platform.dark>.sidebar button.active{color:#dceeff}.platform.platform>.sidebar .side-status,.platform.platform>.sidebar .ai-label{border-color:var(--lg-sidebar-border)}.platform .workspace :where(.panel,.metric,.lab-card,.task-card,.skill-space,.skill-focus,.learning-lab-card,.report-lab-card,.overall-report,.analysis-card,.teacher-task,.teacher-task-main,.tf-panel,.tf-stat,.tf-task-card,.tf-home-review,.tf-profile-gradebook,.tf-profile-radar-card,.tf-process-card){background-color:var(--lg-surface);border-color:var(--lg-border);box-shadow:var(--lg-shadow);-webkit-backdrop-filter:blur(16px)saturate(120%);backdrop-filter:blur(16px)saturate(120%);background-image:linear-gradient(150deg,#ffffff17,#0000 43%);border-radius:12px}.platform .workspace :where(.metric,.tf-stat,.skill-stat-row>span,.mini-metrics>span,.analysis-metrics span,.learning-lab-body dl div,.advice-evidence span,.tf-mini-progress article,.tf-virtual-evidence article,.tf-dense-summary>div,.tf-evidence-grid>article){background-color:var(--lg-surface-soft);border-color:var(--lg-border);box-shadow:var(--lg-shadow-soft);-webkit-backdrop-filter:blur(12px)saturate(115%);backdrop-filter:blur(12px)saturate(115%);background-image:linear-gradient(145deg,#ffffff14,#0000 56%);border-radius:9px}.platform .workspace :where(.lab-card,.task-card,.learning-lab-card,.report-lab-card,.tf-task-card):hover{background-color:var(--lg-surface-hover);border-color:var(--lg-border-hover);box-shadow:0 12px 30px #1f53841a,inset 0 1px 0 var(--lg-highlight)}.platform.dark .workspace :where(.lab-card,.task-card,.learning-lab-card,.report-lab-card,.tf-task-card):hover{box-shadow:0 14px 34px #00040c42,inset 0 1px 0 var(--lg-highlight)}.platform .workspace :where(.lab-image,.task-photo,.learning-lab-image,.report-card-image,.tf-task-image,.teacher-task-image){border-color:var(--lg-border);background-color:#daebf98f;background-image:linear-gradient(145deg,#ffffff80,#c4dcf157)}.platform.dark .workspace :where(.lab-image,.task-photo,.learning-lab-image,.report-card-image,.tf-task-image,.teacher-task-image){background-color:#152b4294;background-image:linear-gradient(145deg,#36536f3d,#0817283d)}.platform .workspace button:not(.home-hero *):not(.teacher-hero *),.platform .workspace .back-link{background-color:var(--lg-surface-soft);border-color:var(--lg-border);color:var(--lg-text);box-shadow:inset 0 1px 0 var(--lg-highlight);background-image:linear-gradient(#ffffff1f,#0000);border-radius:8px}.platform .workspace button:not(.home-hero *):not(.teacher-hero *):hover,.platform .workspace .back-link:hover{background-color:var(--lg-surface-hover);border-color:var(--lg-border-hover);color:var(--lg-blue-active);box-shadow:inset 0 1px 0 var(--lg-highlight),0 4px 12px #26639e14}.platform .workspace button:not(.home-hero *):not(.teacher-hero *):active{background-color:var(--lg-surface-active);border-color:var(--lg-blue-active);box-shadow:inset 0 1px 3px #143e671f}.platform :where(.primary,.tf-modal-actions .primary,.tf-review-actions .primary):not(.home-hero *){color:#fff!important;background-color:#3b82f6e6!important;background-image:linear-gradient(#ffffff24,#0000)!important;border-color:#5aa7ffb8!important;box-shadow:inset 0 1px #ffffff38,0 6px 16px #2264b029!important}.platform :where(.primary,.tf-modal-actions .primary,.tf-review-actions .primary):not(.home-hero *):hover{background-color:#2f75dff0!important;border-color:#a8d8ffc7!important}.platform :where(.danger,button.danger):not(.home-hero *){color:#bb3342!important;background-color:#fff2f3b8!important;border-color:#c9485657!important;box-shadow:inset 0 1px #ffffff94!important}.platform.dark :where(.danger,button.danger):not(.home-hero *){color:#ff9fab!important;background-color:#571f2880!important;border-color:#ef6f7c5c!important}.platform button:disabled{background-color:var(--lg-surface-soft);border-color:var(--lg-border);box-shadow:none;opacity:.52}.platform .workspace :where(.learning-tabs,.tf-subtabs,.review-tabs,.role-tabs){background-color:var(--lg-surface-soft);border-color:var(--lg-border);box-shadow:inset 0 1px 0 var(--lg-highlight);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px}.platform .workspace :where(.learning-tabs,.tf-subtabs,.review-tabs,.skill-picker) button{border-color:var(--lg-border);color:var(--lg-text-secondary);box-shadow:none;background-color:#0000}.platform .workspace :where(.learning-tabs,.tf-subtabs,.review-tabs,.skill-picker) button:hover{background-color:var(--lg-surface-hover);border-color:var(--lg-border-hover)}.platform .workspace :where(.learning-tabs,.tf-subtabs,.review-tabs,.skill-picker) button.active{background-color:var(--lg-surface-active);border-color:var(--lg-border-hover);color:var(--lg-blue-active);box-shadow:inset 0 1px 0 var(--lg-highlight),0 4px 12px #1e5b9714;background-image:linear-gradient(135deg,#5aa7ff2e,#ffffff14)}.platform.dark .workspace :where(.learning-tabs,.tf-subtabs,.review-tabs,.skill-picker) button.active{color:#cce7ff}.platform :where(input,select,textarea):not(.home-hero *):not(.teacher-hero *){background-color:var(--lg-input);border-color:var(--lg-border);color:var(--lg-text);box-shadow:inset 0 1px 0 var(--lg-highlight);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px}.platform :where(input,select,textarea):not(.home-hero *):not(.teacher-hero *):hover{border-color:var(--lg-border-hover)}.platform :where(input,select,textarea):not(.home-hero *):not(.teacher-hero *):focus{border-color:var(--lg-blue);box-shadow:0 0 0 3px #3b82f61f,inset 0 1px 0 var(--lg-highlight);outline-color:#3b82f638}.platform :where(input,textarea):not(.home-hero *):not(.teacher-hero *)::placeholder{color:var(--lg-text-muted)}.platform :where(.scroll-table,.tf-scroll,.tf-home-review-scroll,.tf-review-scroll-six,.tf-profile-scroll,.recent-events .scroll-table){border-color:var(--lg-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#ffffff1f;border-radius:10px;box-shadow:inset 0 1px #ffffff12}.platform table{border-color:var(--lg-border);background-color:#0000}.platform table :where(th,thead td){background-color:var(--lg-table-head);border-color:var(--lg-border);color:var(--lg-text-secondary)}.platform table td{border-color:var(--lg-border);background-color:#0000}.platform table tbody tr:hover td{background-color:var(--lg-surface-soft)}.platform>.modal-backdrop,.platform .tf-dialog-backdrop{-webkit-backdrop-filter:blur(9px)saturate(105%);backdrop-filter:blur(9px)saturate(105%);background-color:#040d1980}.platform :where(.task-modal,.diagram-modal,.tf-modal,.tf-profile-dialog,.tf-review-dialog,.tf-dense-review-dialog,.tf-question-modal){background-color:var(--lg-surface);border-color:var(--lg-border-hover);box-shadow:0 24px 64px #03122447,inset 0 1px 0 var(--lg-highlight);-webkit-backdrop-filter:blur(22px)saturate(125%);backdrop-filter:blur(22px)saturate(125%);background-image:linear-gradient(150deg,#ffffff1a,#0000 42%);border-radius:16px}.platform.dark :where(.task-modal,.diagram-modal,.tf-modal,.tf-profile-dialog,.tf-review-dialog,.tf-dense-review-dialog,.tf-question-modal){box-shadow:0 28px 72px #00030a94,inset 0 1px 0 var(--lg-highlight)}.platform :where(.tf-dense-evidence,.tf-theory-grid-3x2 article,.tf-dense-review-dialog>footer,.question-edit-list>section,.dropzone,.photo-grid figure){background-color:var(--lg-surface-soft);border-color:var(--lg-border);box-shadow:inset 0 1px 0 var(--lg-highlight)}.platform :where(.radar-grid,.tf-labeled-radar .grid,.tf-home-radar .grid){stroke:#5a92c975}.platform.dark :where(.radar-grid,.tf-labeled-radar .grid,.tf-home-radar .grid){stroke:#82b4ff42}.platform :where(.tf-labeled-radar line,.tf-home-radar line){stroke:#6091be61}.platform.dark :where(.tf-labeled-radar line,.tf-home-radar line){stroke:#82b4ff33}.platform :where(.tf-labeled-radar text,.tf-home-radar text){fill:var(--lg-text)}.platform :where(.progress-tooltip,.terrain-tooltip){-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#07192ee6;border-color:#82b4ff47;box-shadow:0 10px 24px #03122438,inset 0 1px #ffffff14}.platform :where(.tf-tag,.status,.pill,.rate-pill,.submission-banner){border-color:var(--lg-border);box-shadow:inset 0 1px #ffffff2e}.platform :where(.tf-tag.approved,.pill.green,.status.s1,.submission-banner.approved,.rate-pill.good){color:#16754f;background-color:#23b07424;border-color:#23b07442}.platform.dark :where(.tf-tag.approved,.pill.green,.status.s1,.submission-banner.approved,.rate-pill.good){color:#79d9ae}.platform :where(.tf-tag.pending,.pill.amber,.status.s2,.status.s3,.submission-banner.pending){color:#95620b;background-color:#e29d2324;border-color:#e29d2347}.platform.dark :where(.tf-tag.pending,.pill.amber,.status.s2,.status.s3,.submission-banner.pending){color:#f1c56d}.platform :where(.tf-tag.returned,.pill.red,.submission-banner.returned){color:#b93242;background-color:#d3465221;border-color:#d3465247}.platform.dark :where(.tf-tag.returned,.pill.red,.submission-banner.returned){color:#ff9ca7}.legacy-save{justify-content:flex-end}.skill-training-page .skill-link-block article{grid-template-columns:104px minmax(0,1fr) auto;gap:14px;min-height:112px;padding:12px 14px}.skill-training-page .skill-link-block img{object-fit:contain;mix-blend-mode:normal;background:0 0;width:96px;height:82px}.skill-training-page .skill-link-block article span{font-size:12px;font-weight:750}.skill-training-page .skill-link-block article b{margin-top:3px;font-size:15px;font-weight:780;line-height:1.35;display:block}.skill-training-page .skill-link-block article p{margin:6px 0 0;font-size:12px;line-height:1.55}.skill-training-page .skill-link-block article button{align-self:center}.skill-training-page .mini-q button:not(.correct):not(.wrong):hover{color:#145f9f!important;background:#edf6ff!important;border-color:#78afe2!important}.skill-training-page .mini-q button.selected:not(.correct):not(.wrong){font-weight:780;color:#075da9!important;background:#dbeeff!important;border-color:#1678d1!important;box-shadow:inset 0 0 0 1px #1678d1!important}.platform.dark .skill-training-page .mini-q button:not(.correct):not(.wrong):hover{color:#d9efff!important;background:#26537eb8!important;border-color:#5aa7ff!important}.platform.dark .skill-training-page .mini-q button.selected:not(.correct):not(.wrong){color:#f2f9ff!important;background:#1d5b97c2!important;border-color:#6eb7ff!important;box-shadow:inset 0 0 0 1px #97cfff7a!important}.skill-training-page .mini-q button.correct:disabled,.skill-training-page .mini-q button.wrong:disabled{opacity:1}.platform .workspace :where(.page-head,.tf-head) h1{letter-spacing:-.02em;color:var(--ink);margin:7px 0;font-size:34px;font-weight:780;line-height:1.2}.platform .workspace :where(.section-title,.tf-title) h2{letter-spacing:0;color:var(--ink);margin:0 0 4px;font-size:19px;font-weight:760;line-height:1.35}.platform .workspace .skill-training-page :where(.skill-picker h2,.skill-link-block h3,.section-title h2){letter-spacing:0;color:var(--ink);margin:0 0 10px;font-size:18px;font-weight:760;line-height:1.35}.platform .workspace .skill-training-page .skill-focus-head h1{letter-spacing:-.01em;color:var(--ink);margin:4px 0;font-size:24px;font-weight:780;line-height:1.3}.platform :where(.task-modal,.diagram-modal,.tf-modal) h2,.platform :where(.tf-profile-dialog,.tf-review-dialog,.tf-dense-review-dialog)>header h2{letter-spacing:-.01em;font-size:23px;font-weight:780;line-height:1.3}.platform .workspace :where(.analysis-card,.event-grid,.tf-process-card) h3{color:var(--ink);font-size:16px;font-weight:760;line-height:1.4}.motor-page .motor-step-banner h2,.motor-page .motor-focused-info>h2,.motor-page .motor-assessment h2{font-weight:760;line-height:1.4}.motor-page .motor-focused-steps h3,.motor-page .motor-focused-info h3{font-weight:750;line-height:1.4}.motor-page .motor-diagram h2{font-size:23px;font-weight:780;line-height:1.3}.learning-page .learning-lab-card{min-height:222px}.learning-page .learning-lab-image{height:auto;min-height:220px}.learning-page .learning-lab-image img{object-fit:contain}.learning-page .learning-lab-body .lab-title{min-height:52px}.learning-page .learning-lab-body dl{gap:5px;margin-top:7px}.learning-page .learning-lab-body dl div{padding:6px 8px}.learning-page .learning-lab-card:nth-child(3) .learning-lab-image img,.learning-page .learning-lab-card:nth-child(4) .learning-lab-image img{width:68%;height:68%}.status.completed{color:#12855e;background:#e6f8f1}.status.running{color:#9d6b03;background:#fff4d9}.status.not-started{color:#6f7d8c;background:#eef2f6}.platform.dark .status.completed{color:#83e1bc;background:#1c6f5252}.platform.dark .status.running{color:#ffd47d;background:#9a690c47}.platform.dark .status.not-started{color:#afc0d1;background:#8297ad29}.motor-focused.dark .motor-platform-top{color:#edf6ff;background-color:#0a1829f0;background-image:linear-gradient(#ffffff0e,#0000);border-bottom-color:#82b4ff38;box-shadow:inset 0 1px #ffffff0e,0 7px 20px #00040c29}.motor-focused.dark .motor-platform-top button{color:#e8f3ff;background:#182f48b8;border-color:#82b4ff3d;box-shadow:inset 0 1px #ffffff12}.motor-focused.dark .motor-platform-top button:hover{background:#1f3b58d1;border-color:#5aa7ff70}.motor-focused.dark .motor-platform-top b{color:#edf6ff}.motor-focused.dark .motor-platform-top span{color:#a9d5ff;background:#1e4e7994}.platform.platform>.topbar :where(.theme-toggle,.logout){isolation:isolate;color:#385a77;background-color:#f5faff85;background-image:linear-gradient(#ffffffb8,#dcedfb42);border-color:#5d91c93d;transition:background-color .18s,border-color .18s,box-shadow .18s,filter .12s;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffe0,inset 0 -1px #5d91c917,0 4px 11px #1d466c14}.platform.platform>.topbar :where(.theme-toggle,.logout):before{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff75,#0000);height:45%;position:absolute;inset:1px 2px auto}.platform.platform>.topbar :where(.theme-toggle,.logout):hover{color:#254d70;background-color:#f8fcffad;border-color:#3b82f661;box-shadow:inset 0 1px #fffffff0,inset 0 -1px #3b82f61f,0 5px 13px #1d466c1c}.platform.platform>.topbar :where(.theme-toggle,.logout):active{filter:brightness(.94);box-shadow:inset 0 2px 4px #254e7421,inset 0 1px #ffffff94,0 2px 7px #1d466c14}.platform.platform>.topbar :where(.theme-toggle,.logout):focus-visible{outline-offset:2px;outline:2px solid #3b82f685}.platform.platform.dark>.topbar :where(.theme-toggle,.logout){color:#e8f3ff;background-color:#132840a3;background-image:linear-gradient(#ffffff14,#05111f1a);border-color:#82b4ff3b;box-shadow:inset 0 1px #ffffff17,inset 0 -1px #00000029,0 5px 13px #00040c2e}.platform.platform.dark>.topbar :where(.theme-toggle,.logout):before{background:linear-gradient(#add7ff1f,#0000)}.platform.platform.dark>.topbar :where(.theme-toggle,.logout):hover{color:#f3f9ff;background-color:#19324ec7;border-color:#5aa7ff6e;box-shadow:inset 0 1px #ffffff1f,inset 0 -1px #0000002e,0 6px 15px #00040c38}.platform.platform.dark>.topbar :where(.theme-toggle,.logout):active{filter:brightness(.88);box-shadow:inset 0 2px 5px #00040c57,inset 0 1px #ffffff0d,0 2px 8px #00040c33}.platform.platform>.topbar .total-progress-track{background:#aec7de6b;position:relative;box-shadow:inset 0 1px 2px #28517524,inset 0 -1px #ffffffb8}.platform.platform>.topbar .total-progress-fill{background:linear-gradient(90deg,#2475e6 0%,#6bd7f3 50%,#3187ef 100%) 0 0/180% 100%;transition:width .55s cubic-bezier(.22,1,.36,1);animation:3.4s ease-in-out infinite topProgressFlux;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff9e,0 0 7px #3187ef3d}.platform.platform>.topbar .total-progress-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff9e 50%,#0000 100%);animation:2.2s linear infinite topProgressSheen;position:absolute;inset:0;transform:translate(-115%)}.platform.platform.dark>.topbar .total-progress-track{background:#071627b3;box-shadow:inset 0 1px 2px #00000075,inset 0 -1px #ffffff0e}.platform.platform.dark>.topbar .total-progress-fill{background:linear-gradient(90deg,#4297ff 0%,#86e5ff 50%,#4ba5ff 100%) 0 0/180% 100%;box-shadow:inset 0 1px #ffffff85,0 0 8px #4aa4ff4d}@keyframes topProgressFlux{0%,to{background-position:0}50%{background-position:100%}}@keyframes topProgressSheen{to{transform:translate(215%)}}@media (prefers-reduced-motion:reduce){.platform.platform>.topbar .total-progress-fill,.platform.platform>.topbar .total-progress-fill:after{transition:none;animation:none}}.platform.platform>.topbar .total-progress-track{width:210px;height:10px}.learning-heatmap button.no-data,.learning-heatmap button.no-data:disabled{border:1px dashed color-mix(in srgb,var(--border) 84%,transparent);opacity:.72;cursor:default;background:color-mix(in srgb,var(--soft) 72%,transparent)!important;color:var(--muted)!important;box-shadow:none!important}.reports-page .report-score-steps{grid-template-columns:repeat(4,1fr);align-items:end;gap:12px;height:200px}.reports-page .report-score-step{flex-direction:column;justify-content:flex-end;align-items:center;display:flex;height:190px!important;min-height:0!important;box-shadow:none!important;color:var(--ink)!important;background:0 0!important;border:0!important;padding:0!important}.reports-page .report-score-step:before,.reports-page .report-score-step:after{content:none!important}.reports-page .report-score-bar-track{border:1px solid color-mix(in srgb,var(--border) 78%,transparent);background:color-mix(in srgb,var(--soft) 76%,transparent);border-radius:5px 5px 2px 2px;align-items:flex-end;width:32px;height:116px;display:flex;overflow:hidden;box-shadow:inset 0 1px 3px #123f671c}.reports-page .report-score-bar-track>i{background:linear-gradient(90deg,#176fc4 0%,#3f9be8 58%,#75c5f4 100%);border:0;border-radius:4px 4px 1px 1px;width:100%;min-height:1px;margin:0;display:block;box-shadow:inset 2px 0 #ffffff2e,inset 0 2px #ffffff61,3px 0 6px #166fc424}.reports-page .report-score-step.step-2 .report-score-bar-track>i{background:linear-gradient(90deg,#2c82d1,#64b7ec)}.reports-page .report-score-step.step-3 .report-score-bar-track>i{background:linear-gradient(90deg,#1769b7,#45a2e7)}.reports-page .report-score-step.step-4 .report-score-bar-track>i{background:linear-gradient(90deg,#0c5fae,#2588dd 62%,#78c8f5)}.reports-page .report-score-step.pending .report-score-bar-track{background:0 0;border-style:dashed}.reports-page .report-score-step.pending .report-score-bar-track>i{background:repeating-linear-gradient(135deg,transparent 0 5px,color-mix(in srgb,var(--border) 52%,transparent) 5px 8px);box-shadow:none;opacity:.7}.reports-page .report-score-step span{white-space:nowrap;margin-top:7px;font-size:12px;font-weight:800}.reports-page .report-score-step strong{white-space:nowrap;margin-top:2px;font-size:13px}.reports-page .report-score-step small{white-space:nowrap;color:var(--muted);margin-top:1px;font-size:10px}.dark .reports-page .report-score-bar-track{background:#08182a99;border-color:#7eb2e640;box-shadow:inset 0 1px 3px #00000061}.teacher-final .tf-time-grid input{text-align:left;line-height:40px}.teacher-final .tf-question-head>button{align-self:flex-start;height:34px;min-height:34px;padding:0 14px;line-height:32px}.tf-experiment-skill-matrix{grid-template-columns:110px repeat(4,minmax(92px,1fr));gap:7px;padding-bottom:0}.tf-experiment-skill-matrix i.no-data{background:color-mix(in srgb,var(--soft) 78%,transparent);color:var(--muted);border:1px dashed var(--border);text-shadow:none;box-shadow:none}@media (max-width:1200px){.tf-experiment-skill-matrix{grid-template-columns:96px repeat(4,minmax(86px,1fr))}}.legacy-shell.dark{color:#e8f2fc;background:#091523}.legacy-shell.dark .legacy-top,.legacy-shell.dark .legacy-save{color:#eaf4ff;background:#0a192af5;border-color:#7eb2e63b}.legacy-shell.dark .legacy-top b,.legacy-shell.dark .legacy-top span{color:#eaf4ff}.legacy-shell.dark .legacy-top button,.legacy-shell.dark .legacy-save button{color:#e8f3ff;border-color:#7eb2e64d}.platform .top-actions{gap:8px}.platform .top-actions .identity{margin-right:6px}.platform.dark{--muted:#aec2d6;--ink:#eef6ff}.platform.dark :where(.page-head>div>span,.section-title p,.tf-title p,.metric>span,.metric small,.lab-progress span,.skill-focus-head>div>span,.skill-link-block article span,.learning-lab-body dt,.report-score-step small,.tf-stat span,.tf-stat small,.tf-task-title small,.tf-task-data span,.tf-review-stats span,.tf-review-stats small,.tf-home-matrix>b,.tf-experiment-skill-matrix>b,.tf-subtabs button:not(.active),.learning-tabs button:not(.active)){color:#adc4da}.platform.dark :where(.metric strong,.lab-progress b,.learning-lab-body dd,.skill-stat-row b,.tf-task-data b,.tf-stat b,.total-progress em){color:#f3f8ff}.platform.dark :where(.page-head>div>span,.skill-focus-head>div>span,.skill-link-block article span){color:#77bdff}.platform.dark :where(table th,table td,.scroll-table th,.scroll-table td){border-color:#8eb8e033}.platform :where(.lab-image>span,.task-photo>span,.learning-lab-image>span,.report-card-image>span,.tf-task-image>span){letter-spacing:.06em;font-size:13px;font-weight:850}.teacher-final .tf-mini-progress figcaption span{font-size:10px}.home-hero>span:not(.hero-metrics *),.tf-home-hero>span:not(.tf-hero-metrics *){display:none}.home-hero h1,.tf-home-hero h1{margin-top:4px}.platform .next-step{flex-direction:column;padding-top:22px;padding-bottom:22px;display:flex}.platform .next-step h2{margin:10px 0 7px}.platform .next-step .advice-evidence{margin:16px 0 10px}.platform .next-step .suggestion-action{margin-top:auto}.skill-picker button{transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s}.skill-picker button:hover{background:color-mix(in srgb,var(--soft) 82%,#dcefff);border-color:#65a9e7}.skill-picker button.active,.skill-picker button.active:hover{color:#07599f;background:#dcefff;border-color:#1378da;box-shadow:inset 0 0 0 1px #1378da}.platform.dark .skill-picker button:hover{background:#1b334a;border-color:#4f91ca}.platform.dark .skill-picker button.active,.platform.dark .skill-picker button.active:hover{color:#f4f9ff;background:#174c78;border-color:#63b5f7;box-shadow:inset 0 0 0 1px #77c4ff70}.skill-link-block article button{font-weight:800;color:#fff!important;background:#0b70d5!important;border-color:#0b70d5!important}.skill-link-block article button:hover{background:#095fb7!important;border-color:#095fb7!important}.learning-tabs,.tf-subtabs{background:color-mix(in srgb,var(--soft) 82%,transparent);border:1px solid var(--border);border-radius:10px;align-items:center;gap:6px;min-height:52px;padding:5px;display:inline-flex;box-shadow:inset 0 1px #ffffff52}.platform .workspace .learning-tabs button,.platform .workspace .tf-subtabs button{height:40px;min-height:40px;box-shadow:none;border:1px solid #0000;border-radius:7px;padding:0 22px;font-weight:800;color:var(--muted)!important;background:0 0!important}.learning-tabs button:hover,.tf-subtabs button:hover{background:color-mix(in srgb,var(--card) 66%,transparent);color:var(--ink)}.platform .workspace .learning-tabs button.active,.platform .workspace .tf-subtabs button.active{border-color:color-mix(in srgb,#2585da 45%,var(--border));box-shadow:0 3px 10px #14538c1f;background:var(--card)!important;color:#126fc4!important}.platform.dark .learning-tabs,.platform.dark .tf-subtabs{box-shadow:inset 0 1px #ffffff0f}.platform.dark .workspace .learning-tabs button.active,.platform.dark .workspace .tf-subtabs button.active{border-color:#6fb9f366;box-shadow:0 3px 12px #0000003d;color:#8bcdff!important}.login-page .login-panel{-webkit-backdrop-filter:blur(15px)saturate(122%);background:linear-gradient(145deg,#12375f75,#081e3e4a);border-color:#92cfff57;box-shadow:0 30px 72px #0000003d,inset 0 1px #ffffff30,inset 1px 0 #97d3ff12}.learning-lab-4 .learning-lab-image img{object-fit:contain;object-position:center;width:58%;height:76%}.reports-page .report-card-body{position:relative}.reports-page .report-score-steps{grid-template-columns:repeat(3,1fr);height:200px;padding-right:110px}.reports-page .report-score-step.step-4{justify-content:flex-start;width:92px;display:flex;position:absolute;top:58px;right:18px;height:112px!important}.reports-page .report-score-step.step-4 .report-score-bar-track{background:conic-gradient(#1678d4 0 var(--final-score,360deg),#dce5ed var(--final-score,360deg));border:0;border-radius:50%;place-items:center;width:84px;height:84px;display:grid;overflow:visible}.reports-page .report-score-step.step-4 .report-score-bar-track:after{content:"";background:var(--card);border-radius:50%;width:66px;height:66px}.reports-page .report-score-step.step-4 .report-score-bar-track>i{display:none}.reports-page .report-score-step.step-4 strong{text-align:center;z-index:2;width:92px;font-size:16px;position:absolute;top:30px;left:0}.reports-page .report-score-step.step-4 span{margin-top:5px}.reports-page .report-score-step.step-4 small{display:none}.reports-page .report-score-step.step-4.pending .report-score-bar-track{border:1px solid var(--border);background:#dce5ed}.reports-page .report-card-body>p{display:none}.platform.dark .reports-page .report-score-step.step-4 .report-score-bar-track:after{background:var(--card)}.teacher-final .tf-home-review-scroll{max-height:260px}.teacher-final .tf-mini-progress article{padding:12px}.teacher-final .tf-mini-progress article>div{height:178px;margin-top:7px}.teacher-final .tf-review-stats-compact{width:100%;max-width:none;grid-template-columns:repeat(4,minmax(0,1fr))!important}:where(.learning-heatmap button,.tf-home-matrix i,.tf-experiment-skill-matrix i).heat-high{color:#fff;background:#1262aa!important}:where(.learning-heatmap button,.tf-home-matrix i,.tf-experiment-skill-matrix i).heat-mid{color:#fff;background:#277fc5!important}:where(.learning-heatmap button,.tf-home-matrix i,.tf-experiment-skill-matrix i).heat-base{color:#fff;background:#5aa3d8!important}:where(.learning-heatmap button,.tf-home-matrix i,.tf-experiment-skill-matrix i).heat-low{color:#173b5c;text-shadow:none;background:#a9d0eb!important}:where(.tf-home-matrix i,.tf-experiment-skill-matrix i).no-data{border:1px dashed var(--border);text-shadow:none;box-shadow:none;background:color-mix(in srgb,var(--soft) 78%,transparent)!important;color:var(--muted)!important}.platform.dark :where(.learning-heatmap button,.tf-home-matrix i,.tf-experiment-skill-matrix i).heat-low{color:#eaf5ff;background:#315c7d!important}.motor-page .motor-task-banner strong{font-size:17px}.motor-page .motor-task-banner small{font-size:13px}.motor-page .motor-steps h3{font-size:15px}.motor-page .motor-steps button{font-size:13px}.motor-page .motor-steps button small{font-size:11px}.motor-page .bench-head span,.motor-page .motor-info>span{font-size:12px}.motor-page .bench-head b{font-size:14px}.motor-page .motor-info h2{font-size:20px}.motor-page .motor-info :where(p,li){font-size:13px;line-height:1.6}.motor-focused .motor-step-banner h2{font-size:19px}.motor-focused .motor-step-banner p{font-size:13px}.motor-focused .motor-focused-steps h3{font-size:15px}.motor-focused .motor-focused-steps button{font-size:13px}.motor-focused .motor-focused-steps button small{font-size:11px}.motor-focused .motor-bench-head span,.motor-focused .motor-focused-info>span{font-size:12px}.motor-focused .motor-bench-head b{font-size:14px}.motor-focused .motor-focused-info h2{font-size:20px}.motor-focused .motor-focused-info :where(p,li){font-size:13px;line-height:1.6}@media (max-width:1200px){.reports-page .report-score-steps{padding-right:96px}}.motor-focused .motor-step-banner{gap:0;height:72px;padding:10px 18px}.motor-focused .motor-step-banner>b{border-right-color:#ffffff45;margin-right:17px;padding-right:17px;font-size:28px;font-weight:750}.motor-focused .motor-step-banner h2{margin:0 0 5px;font-size:19px;font-weight:750;line-height:1.25}.motor-focused .motor-step-banner h2 span{color:#c8ddf3;font-size:15px;font-weight:400}.motor-focused .motor-step-banner p{color:#d5e5f5;margin:0;font-size:15px;font-weight:450;line-height:1.4}.motor-focused .motor-focused-steps{padding:14px}.motor-focused .motor-focused-steps h3{color:#0b315a;margin:5px 0 12px;font-size:16px;font-weight:750}.motor-focused .motor-focused-steps button{border-left-width:3px;gap:9px;padding:8px 5px;font-size:14px;font-weight:600;line-height:1.35}.motor-focused .motor-focused-steps button i{width:23px;height:23px;font-size:12px}.motor-focused .motor-focused-steps button span{font-weight:600}.motor-focused .motor-focused-steps button small{color:#94a3b8;margin-top:3px;font-size:12px;font-weight:400;line-height:1.35}.motor-focused .motor-focused-steps button.active{color:#0b4f8c;background:#dceeff;border-color:#1976d2}.motor-focused .motor-focused-steps button.done{color:#2e7d32}.motor-focused.dark .motor-focused-steps h3{color:#edf6ff}.motor-focused.dark .motor-focused-steps button{color:#b8c8d8}.motor-focused.dark .motor-focused-steps button small{color:#9fb2c5}.motor-focused.dark .motor-focused-steps button.active{color:#f0f8ff;background:#21496d;border-color:#4ba5f6}.motor-focused.dark .motor-focused-steps button.done{color:#87d6a1}.motor-focused .motor-focused-info{padding:14px}.motor-focused .motor-focused-info>span{letter-spacing:.14em;color:#1976d2;font-size:12px;font-weight:750}.motor-focused .motor-focused-info>h2{margin:8px 0 16px;font-size:19px;font-weight:750;line-height:1.4}.motor-focused .motor-info-block{border-top-color:var(--border);padding:12px 0}.motor-focused .motor-info-block h3,.motor-focused .motor-record h3{color:var(--ink);margin:0 0 8px;font-size:16px;font-weight:750;line-height:1.35}.motor-focused .motor-info-block p,.motor-focused .motor-info-block li,.motor-focused .motor-record p{color:var(--muted);font-size:15px;font-weight:450;line-height:1.65}.motor-focused .motor-info-block ol{padding-left:22px}.motor-focused .motor-record{margin-top:12px;padding:12px}.reports-page .report-card-image{grid-template-rows:98px 142px;grid-template-columns:minmax(0,1fr) 108px;align-items:center;column-gap:10px;min-height:272px;padding:18px 18px 14px;display:grid}.reports-page .report-card-image>span{top:14px;left:16px}.reports-page .report-device-visual{grid-area:2/1/auto/-1;place-items:center;min-width:0;height:136px;display:grid}.reports-page .report-device-visual img{object-fit:contain;object-position:center;max-width:100%;max-height:136px;display:block;width:100%!important;height:136px!important}.reports-page .report-final-score{grid-area:1/2;place-self:start end;place-items:center;width:108px;padding-top:3px;display:grid}.reports-page .report-final-score .mini-ring{width:88px;height:88px}.reports-page .report-final-score .mini-ring:before{inset:8px}.reports-page .report-final-score .mini-ring strong{font-size:23px}.reports-page .report-final-score .mini-ring-wrap>span{color:var(--muted);margin-top:7px;font-size:12px;font-weight:750;display:block}.reports-page .report-final-score .mini-ring-wrap>small{margin-top:3px}.reports-page .report-card-body .lab-title{min-height:0;padding-right:0}.reports-page .report-score-steps{grid-template-columns:repeat(3,minmax(0,1fr));justify-items:center;gap:24px;height:200px;padding:0 24px}.reports-page .report-score-step{width:100%;max-width:92px}.teacher-final .tf-home-overview-grid>.tf-panel:first-child{flex-direction:column;padding-bottom:14px;display:flex}.teacher-final .tf-home-overview-grid>.tf-panel:first-child>.tf-title{margin-bottom:10px}.teacher-final .tf-mini-progress article{grid-template-rows:auto 1fr;height:100%;padding:12px 14px 10px;display:grid}.teacher-final .tf-mini-progress article>div{align-items:end;height:auto;min-height:0;margin-top:5px}.teacher-final .tf-mini-progress figure>i{height:175px}.teacher-final .tf-mini-progress figcaption b{margin-top:2px}.teacher-final .tf-mini-progress figcaption span{margin-top:1px}@media (max-width:720px){.reports-page .report-card-image{grid-template-columns:minmax(0,1fr) 102px;padding-inline:16px}.reports-page .report-final-score{width:96px}.reports-page .report-score-steps{gap:12px;padding-inline:8px}}.platform.platform{--home-e-out:cubic-bezier(.16,1,.3,1);--home-e-soft:cubic-bezier(.22,.61,.36,1);isolation:isolate;background:0 0;grid-template-columns:196px minmax(0,1fr);position:relative}.platform.platform.dark{background:0 0}.primary-home-background{z-index:-2;pointer-events:none;background:#ddebfa;position:fixed;inset:0;overflow:hidden}.primary-home-background.is-dark{background:#071426}.primary-home-background .lightfall-container,.primary-home-background canvas{width:100%;height:100%}.primary-home-background:after{content:"";pointer-events:none;background:linear-gradient(105deg,#f7fcff61,#eff8ff38 48%,#eef7ff1a 78%),linear-gradient(#ffffff47,#0000 28%);position:absolute;inset:0}.primary-home-background.is-dark:after{background:linear-gradient(105deg,#030c197a,#030c1933 46%,#030c190d 78%,#0000),linear-gradient(#020a1638,#0000 24%),linear-gradient(#030c181a,#030c181a)}.platform.platform>.topbar{z-index:20;color:#183450;box-shadow:none!important;-webkit-backdrop-filter:none!important;background:0 0!important;border-color:#0000!important}.platform.platform.dark>.topbar{color:#f4f8ff}.platform.platform>.topbar .top-brand,.platform.platform>.topbar .total-progress,.platform.platform>.topbar .top-actions{-webkit-backdrop-filter:blur(16px)saturate(118%);background:linear-gradient(145deg,#ffffff8f,#ebf6ff4f);border:1px solid #4b7eb72b;box-shadow:inset 0 1px #ffffffad,0 8px 26px #264e7412}.platform.platform.dark>.topbar .top-brand,.platform.platform.dark>.topbar .total-progress,.platform.platform.dark>.topbar .top-actions{background:linear-gradient(145deg,#11274487,#0a19304d);border-color:#97c2ff2e;box-shadow:inset 0 1px #ffffff12,0 10px 30px #00051029}.platform.platform>.topbar .top-brand{border-radius:15px;width:auto;padding:7px 13px}.platform.platform>.topbar .total-progress{border-radius:15px;margin-left:auto;padding:8px 12px}.platform.platform>.topbar .top-actions{border-radius:16px;margin-left:auto;padding:5px}.platform.platform>.topbar .total-progress+.top-actions{margin-left:12px}.platform.platform>.topbar .identity{border-left:0;padding:0 9px 0 5px}.platform.platform>.topbar :where(.theme-toggle,.logout){color:#274b6d!important;background:#ffffff29!important;border-color:#4f82bc29!important;box-shadow:inset 0 1px #ffffff8f!important}.platform.platform.dark>.topbar :where(.theme-toggle,.logout){color:#ecf6ff!important;background:#ffffff0e!important;border-color:#90befc29!important;box-shadow:inset 0 1px #ffffff12!important}.platform.platform>.topbar :where(.theme-toggle,.logout):hover{background:#ffffff57!important;border-color:#3b82f659!important}.platform.platform.dark>.topbar :where(.theme-toggle,.logout):hover{background:#63a8ff24!important}.platform.platform>.sidebar{z-index:15;height:calc(100vh - 100px);animation:homeSlideL .92s var(--home-e-out) 50ms both;border:1px solid #487cb52b;border-radius:28px;margin:14px 12px 14px 14px;padding:17px 11px;top:86px;-webkit-backdrop-filter:blur(19px)saturate(118%)!important;background:linear-gradient(#ffffff78,#ecf7ff47 34%,#deeffd40)!important;box-shadow:inset 0 1px #ffffffb8,0 14px 38px #1f436717!important}.platform.platform.dark>.sidebar{border-color:#94c1ff2e;background:linear-gradient(#162d4a8f,#0c1e366e 35%,#09182e61)!important;box-shadow:inset 0 1px #ffffff14,0 18px 42px #00051233!important}.platform.platform>.sidebar :where(button,a){color:#355a7b;transition:background-color .24s var(--home-e-soft),border-color .24s var(--home-e-soft),color .24s var(--home-e-soft),transform .24s var(--home-e-soft);animation:homeRiseIn .6s var(--home-e-soft) calc(.36s + var(--nav-index,0)*55ms) both;font-weight:700;position:relative;border:1px solid #0000!important}.platform.platform.dark>.sidebar :where(button,a){color:#c6d9ec}.platform.platform>.sidebar :where(button,a):hover{transform:translateY(-1px);background:#ffffff4d!important;border-color:#417dbe26!important}.platform.platform.dark>.sidebar :where(button,a):hover{background:#68acff1a!important;border-color:#81b9ff2b!important}.platform.platform>.sidebar button.active{color:#075eae!important;background:linear-gradient(100deg,#4696eb2e,#ffffff40)!important;border-color:#3b82f645!important;box-shadow:inset 0 1px #ffffff7a!important}.platform.platform.dark>.sidebar button.active{color:#f1f8ff!important;background:linear-gradient(100deg,#2d87e142,#71b6ff14)!important;border-color:#69b1ff4d!important;box-shadow:inset 0 1px #ffffff14!important}.platform.platform>.sidebar button.active:before{content:"";transform-origin:50%;width:3px;animation:homeGrowY .5s var(--home-e-out) .68s both;background:#2f89e7;border-radius:3px;position:absolute;top:9px;bottom:9px;left:-12px;box-shadow:0 0 9px #2f89e757}.platform.platform>.sidebar .side-label{color:#537897}.platform.platform.dark>.sidebar .side-label{color:#91abc4}.platform.platform>.sidebar .ai-label{border-color:#5082b629;margin-top:10px;padding-top:13px}.platform.platform>.sidebar .side-status{border-color:#5082b629}.platform.platform>.workspace{z-index:1;background:0 0;position:relative}.platform.platform>.workspace.home-workspace :where(.home-hero,.teacher-hero){color:#102f4e;overflow:visible;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important}.platform.platform.dark>.workspace.home-workspace :where(.home-hero,.teacher-hero){color:#f6f9ff}.platform.platform>.workspace.home-workspace :where(.home-hero,.teacher-hero):before{z-index:-1;pointer-events:none;background:radial-gradient(at 16% 18%,#ebf7ff9e,#e1f1ff38 43%,#0000 72%);display:block;inset:-18px -24px}.platform.platform.dark>.workspace.home-workspace :where(.home-hero,.teacher-hero):before{background:radial-gradient(at 15% 20%,#0310229e,#03102247 45%,#0000 74%)}.platform.platform>.workspace.home-workspace :where(.hero-current-layer,.hero-lightfall-layer){display:none!important}.platform.platform>.workspace.home-workspace :where(.home-hero,.teacher-hero) h1{letter-spacing:-.04em;color:inherit;text-shadow:0 2px 16px #ffffff47;animation:homeRiseIn .9s var(--home-e-out) .22s both;margin-top:18px;font-family:Didot,"Bodoni 72",Bodoni MT,Songti SC,STSong,Noto Serif CJK SC,serif;font-size:clamp(42px,3.35vw,58px);font-weight:500;line-height:1.12}.platform.platform.dark>.workspace.home-workspace :where(.home-hero,.teacher-hero) h1{text-shadow:0 3px 22px #00081685}.platform.platform>.workspace.home-workspace :where(.home-hero>p,.teacher-hero>p){color:#42627f;text-shadow:0 1px 10px #ffffff6b;animation:homeRiseIn .78s var(--home-e-soft) .42s both;font-size:16px;font-weight:600}.platform.platform.dark>.workspace.home-workspace :where(.home-hero>p,.teacher-hero>p){color:#d4e3f1;text-shadow:0 2px 15px #0007129e}.platform.platform>.workspace.home-workspace :where(.hero-actions,.tf-hero-actions){animation:homeRiseIn .72s var(--home-e-out) .58s both}.platform.platform>.workspace.home-workspace :where(.hero-actions,.tf-hero-actions) button{-webkit-backdrop-filter:blur(13px)saturate(116%);box-shadow:inset 0 1px #ffffff47,0 8px 22px #1246771a}.platform.platform>.workspace.home-workspace :where(.hero-actions,.tf-hero-actions) button:not(.primary){color:#163f65;background:#ffffff4f;border-color:#4278b042}.platform.platform.dark>.workspace.home-workspace :where(.hero-actions,.tf-hero-actions) button:not(.primary){color:#f0f7ff;background:#0f27456b;border-color:#87baf83d}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics){grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.platform.platform>.workspace.home-workspace .tf-hero-metrics-compact{left:44px;right:44px}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics)>div{-webkit-backdrop-filter:blur(17px)saturate(118%);animation:homeRiseIn .72s var(--home-e-out) calc(.72s + var(--metric-index,0)*80ms) both;background:linear-gradient(145deg,#ffffff85,#e7f4ff45);border:1px solid #4579b52e;border-radius:15px;padding:14px 17px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffb3,0 10px 28px #1b487114}.platform.platform.dark>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics)>div{background:linear-gradient(145deg,#122b4b85,#0b1c3557);border-color:#8fc0ff2e;box-shadow:inset 0 1px #ffffff14,0 12px 30px #0006122e}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics)>div:after{content:"";width:38%;animation:homeSheen 1.15s var(--home-e-soft) calc(1.38s + var(--metric-index,0)*.12s) 1 both;background:linear-gradient(100deg,#0000,#ffffff57,#0000);position:absolute;inset:-30% auto -30% -45%;transform:skew(-18deg)}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics)>div:first-child{--metric-index:0}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics)>div:nth-child(2){--metric-index:1}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics)>div:nth-child(3){--metric-index:2}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics)>div:nth-child(4){--metric-index:3}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics) b{color:#102f4e;font-size:28px}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics) span{color:#52718d;font-size:13px}.platform.platform.dark>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics) b{color:#f7fbff}.platform.platform.dark>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics) span{color:#bdd1e5}@keyframes homeSlideL{0%{opacity:0;transform:translate(-26px)}to{opacity:1;transform:none}}@keyframes homeRiseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes homeGrowY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes homeSheen{0%{transform:translate(-150%)skew(-18deg)}to{transform:translate(500%)skew(-18deg)}}@media (max-width:1450px){.platform.platform{grid-template-columns:184px minmax(0,1fr)}}@media (max-width:900px){.platform.platform{grid-template-columns:1fr}.platform.platform>.sidebar{border-radius:20px;height:auto;margin:10px;position:relative;top:auto}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics){grid-template-columns:repeat(2,minmax(0,1fr))}.platform.platform>.workspace.home-workspace :where(.home-hero,.teacher-hero){overflow:hidden}.platform.platform>.workspace.home-workspace .tf-hero-metrics-compact{right:44px}}@media (prefers-reduced-motion:reduce){.platform.platform>.sidebar,.platform.platform>.sidebar :where(button,a),.platform.platform>.sidebar button.active:before,.platform.platform>.workspace.home-workspace :where(.home-hero,.teacher-hero) h1,.platform.platform>.workspace.home-workspace :where(.home-hero>p,.teacher-hero>p),.platform.platform>.workspace.home-workspace :where(.hero-actions,.tf-hero-actions),.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics)>div{opacity:1!important;animation:none!important;transform:none!important}.platform.platform>.workspace.home-workspace :where(.hero-metrics,.tf-hero-metrics)>div:after{display:none!important}.platform.platform :where(button,a){transition:none!important}}.viz-bars{--viz-chart-height:220px;grid-template-columns:repeat(var(--viz-count),minmax(0,1fr));height:var(--viz-chart-height);border-bottom:1px solid var(--border);background:repeating-linear-gradient(to top,transparent 0 53px,color-mix(in srgb,var(--border) 58%,transparent) 54px);align-items:stretch;gap:clamp(8px,1.4vw,22px);padding:23px 8px 0;display:grid}.viz-bar{text-align:center;outline:none;grid-template-rows:24px 1fr minmax(34px,auto);align-items:end;min-width:0;display:grid;position:relative}.viz-column{justify-content:center;align-items:flex-end;height:100%;min-height:0;display:flex}.viz-column i{width:min(54px,68%);height:var(--viz-height);transform-origin:bottom;animation:vizGrow .82s cubic-bezier(.16,1,.3,1) calc(80ms + var(--viz-index)*60ms) both;transition:filter .22s,opacity .22s,background .22s;display:block}.viz-value{color:var(--ink);opacity:0;animation:vizValueIn .42s ease calc(.58s + var(--viz-index)*60ms) forwards;align-self:center;font-size:14px;line-height:1}.viz-bar>small{color:var(--muted);overflow-wrap:anywhere;align-self:start;padding:9px 2px 0;font-size:12px;font-weight:720;line-height:1.28;display:block}.viz-tooltip{z-index:4;border:1px solid var(--border);background:color-mix(in srgb,var(--card) 91%,transparent);min-width:max-content;max-width:180px;color:var(--muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;pointer-events:none;border-radius:8px;padding:7px 9px;font-size:11px;font-style:normal;line-height:1.35;transition:all .2s;position:absolute;top:32px;left:50%;transform:translate(-50%,5px);box-shadow:0 9px 24px #07213d24}.viz-tooltip strong{color:var(--ink);margin-top:2px;font-size:13px;display:block}:is(.viz-bar:hover .viz-tooltip,.viz-bar:focus-visible .viz-tooltip){opacity:1;transform:translate(-50%)}.viz-bars:has(.viz-bar:hover) .viz-bar:not(:hover) .viz-column i{opacity:.56;filter:saturate(.72)}.viz-bar:focus-visible{border-radius:7px;box-shadow:0 0 0 2px #318ee6b8}.viz-fade-bars .viz-column i{background:linear-gradient(#a9e4ff 0,#59b5f2 12%,#2889d6b8 48%,#2683cf14 100%);border-radius:5px 5px 1px 1px;box-shadow:inset 0 2px #e8f9ffbf}.platform.dark .viz-fade-bars .viz-column i{background:linear-gradient(#c5efff 0,#62bdf7 12%,#2689dcab 48%,#1970c20f 100%);box-shadow:inset 0 2px #f0fcffcc}:is(.viz-fade-bars .viz-bar:hover .viz-column i,.viz-fade-bars .viz-bar:focus-visible .viz-column i){filter:saturate(1.2)brightness(1.12);box-shadow:inset 0 2px #ffffffe6,0 -5px 18px #4cadf133}.viz-category-card{border:1px solid var(--border);background:linear-gradient(145deg,#f5faffc2,#e4f0fc78);border-radius:13px;min-width:0;padding:17px 16px 14px;overflow:hidden;box-shadow:inset 0 1px #ffffffa8}.platform.dark .viz-category-card{background:linear-gradient(145deg,#13243dd4,#0d1b32ad);box-shadow:inset 0 1px #ffffff12}.viz-category-card>h3{color:var(--ink);margin:0 0 5px!important;font-size:15px!important}.viz-category-bars{--viz-chart-height:248px;background:repeating-linear-gradient(to top,transparent 0 47px,color-mix(in srgb,var(--border) 48%,transparent) 48px);gap:clamp(6px,1vw,14px);padding-left:2px;padding-right:2px}.viz-category-bars .viz-column i{background:linear-gradient(180deg,var(--viz-color) 0 72%,color-mix(in srgb,var(--viz-color) 55%,transparent));width:min(46px,72%);box-shadow:0 0 16px color-mix(in srgb,var(--viz-color) 20%,transparent);border-radius:4px 4px 1px 1px}.viz-category-bars .viz-bar:nth-child(7n+1){--viz-color:#6650d8}.viz-category-bars .viz-bar:nth-child(7n+2){--viz-color:#8958ea}.viz-category-bars .viz-bar:nth-child(7n+3){--viz-color:#36c8c9}.viz-category-bars .viz-bar:nth-child(7n+4){--viz-color:#a044d4}.viz-category-bars .viz-bar:nth-child(7n+5){--viz-color:#438df1}.viz-category-bars .viz-bar:nth-child(7n+6){--viz-color:#1764d9}.viz-category-bars .viz-bar:nth-child(7n){--viz-color:#37bdd9}:is(.viz-category-bars .viz-bar:hover .viz-column i,.viz-category-bars .viz-bar:focus-visible .viz-column i){filter:brightness(1.17)saturate(1.12);box-shadow:0 0 22px color-mix(in srgb,var(--viz-color) 38%,transparent)}.viz-category-bars .viz-bar>small{min-height:37px;font-size:11px}.viz-category-bars .viz-value{white-space:nowrap;font-size:12px}.home-skill-bars{--viz-chart-height:310px;gap:clamp(8px,1.3vw,20px);padding-top:28px}.home-skill-bars .viz-bar>small{color:var(--ink);white-space:nowrap;font-size:13px}.experiment-analysis-bars{--viz-chart-height:230px;margin-top:14px}.teacher-score-bars{--viz-chart-height:315px;padding-top:30px}.tf-mini-progress article>.teacher-class-bars{height:100%;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;margin-top:5px;padding:0;display:block;overflow:visible}.teacher-class-bars .viz-category-bars{--viz-chart-height:168px;background:repeating-linear-gradient(to top,transparent 0 37px,color-mix(in srgb,var(--border) 46%,transparent) 38px);gap:12px;height:168px;padding:18px 2px 0}.teacher-class-bars .viz-column i{width:min(34px,64%)}.teacher-class-bars .viz-bar>small{white-space:nowrap;font-size:10px}.event-visual-pair,.tf-event-visual-pair{grid-template-columns:1fr 1fr;gap:14px;min-width:0;display:grid}.tf-event-columns{grid-template-columns:1.25fr .75fr!important}.platform .learning-heatmap button.heat-peak{color:#fff;background:#084885!important}.platform .learning-heatmap button.heat-high{color:#fff;background:#1262aa!important}.platform .learning-heatmap button.heat-mid{color:#fff;background:#277fc5!important}.platform .learning-heatmap button.heat-base{color:#fff;text-shadow:none;background:#5aa3d8!important}.platform .learning-heatmap button.heat-low{color:#173b5c;text-shadow:none;background:#a9d0eb!important}.platform.dark .learning-heatmap button.heat-low{color:#eaf5ff;background:#315c7d!important}.home-skill-bars .viz-bar:first-child{--skill-color:#1677d2;--skill-glow:#1677d240}.home-skill-bars .viz-bar:nth-child(2){--skill-color:#1e9bd7;--skill-glow:#1e9bd740}.home-skill-bars .viz-bar:nth-child(3){--skill-color:#28aeb5;--skill-glow:#28aeb540}.home-skill-bars .viz-bar:nth-child(4){--skill-color:#3978df;--skill-glow:#3978df40}.home-skill-bars .viz-bar:nth-child(5){--skill-color:#6559d9;--skill-glow:#6559d940}.home-skill-bars .viz-bar:nth-child(6){--skill-color:#8358cf;--skill-glow:#8358cf40}.home-skill-bars .viz-bar:nth-child(7){--skill-color:#2b63c7;--skill-glow:#2b63c740}.home-skill-bars .viz-bar:nth-child(8){--skill-color:#248ea8;--skill-glow:#248ea840}.home-skill-bars .viz-column i,.platform.dark .home-skill-bars .viz-column i{background:linear-gradient(180deg,#eefcff 0,color-mix(in srgb,var(--skill-color) 58%,#fff) 11%,var(--skill-color) 45%,color-mix(in srgb,var(--skill-color) 66%,transparent) 72%,color-mix(in srgb,var(--skill-color) 7%,transparent) 100%);box-shadow:inset 0 2px #f5fdffd9}:is(.home-skill-bars .viz-bar:hover .viz-column i,.home-skill-bars .viz-bar:focus-visible .viz-column i){box-shadow:inset 0 2px #ffffffeb,0 -5px 18px var(--skill-glow)}.learning-events-view .event-visual-pair{align-self:start;align-items:stretch}.learning-events-view .event-visual-pair .viz-category-bars{--viz-chart-height:205px}.reports-page .report-score-steps{background:repeating-linear-gradient(to top,transparent 0 39px,color-mix(in srgb,var(--border) 42%,transparent) 40px);border-bottom:1px solid var(--border)}.reports-page .report-score-bar-track{border-color:color-mix(in srgb,var(--border) 72%,transparent);background:color-mix(in srgb,var(--soft) 36%,transparent);width:38px;box-shadow:inset 0 1px 3px #123f6714}.reports-page .report-score-step.step-1{--report-bar:#6650d8}.reports-page .report-score-step.step-2{--report-bar:#36bfc5}.reports-page .report-score-step.step-3{--report-bar:#438df1}.reports-page .report-score-step .report-score-bar-track>i{box-shadow:inset 0 2px #ffffff7a,0 0 15px color-mix(in srgb,var(--report-bar) 23%,transparent);transition:filter .22s,box-shadow .22s;background:linear-gradient(180deg,color-mix(in srgb,var(--report-bar) 72%,#fff),var(--report-bar) 24%,color-mix(in srgb,var(--report-bar) 64%,transparent))!important}.reports-page .report-score-step:hover .report-score-bar-track>i{filter:brightness(1.14)saturate(1.12);box-shadow:inset 0 2px #ffffff9e,0 0 21px color-mix(in srgb,var(--report-bar) 38%,transparent)}.platform.platform{--teacher-modal-sidebar:196px;--teacher-modal-top:86px}.platform .tf-dialog-backdrop{padding:var(--teacher-modal-top) 24px 24px calc(var(--teacher-modal-sidebar) + 24px)!important;place-items:start center!important}.platform .tf-dialog-backdrop :where(.tf-dense-review-dialog,.tf-review-dialog,.tf-profile-dialog){width:min(1580px,calc(100vw - var(--teacher-modal-sidebar) - 48px))!important;max-height:calc(100vh - var(--teacher-modal-top) - 24px)!important;margin:0!important}:is(.platform .modal-backdrop:has(.tf-question-modal),.platform .modal-backdrop:has(.tf-step-modal-final)){padding:var(--teacher-modal-top) 24px 24px calc(var(--teacher-modal-sidebar) + 24px);place-items:start center}.platform :where(.tf-question-modal,.tf-step-modal-final){width:min(1180px,calc(100vw - var(--teacher-modal-sidebar) - 48px))!important;max-height:calc(100vh - var(--teacher-modal-top) - 24px)!important}.platform :where(.tf-question-modal,.tf-step-modal-final,.tf-dense-review-dialog,.tf-review-dialog,.tf-profile-dialog)>.modal-close{border:1px solid color-mix(in srgb,var(--border) 78%,#4d8dcc)!important;background:color-mix(in srgb,var(--soft) 88%,transparent)!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;color:var(--ink)!important;z-index:8!important;border-radius:11px!important;place-items:center!important;font-size:29px!important;line-height:1!important;transition:background .18s,border-color .18s,color .18s!important;display:grid!important;top:18px!important;right:18px!important;box-shadow:inset 0 1px #ffffff40,0 7px 18px #041f3a1c!important}.platform :where(.tf-question-modal,.tf-step-modal-final,.tf-dense-review-dialog,.tf-review-dialog,.tf-profile-dialog)>.modal-close:hover{background:color-mix(in srgb,#368fdf 16%,var(--card))!important;color:#075eae!important;border-color:#4c9ae0!important}.platform.dark :where(.tf-question-modal,.tf-step-modal-final,.tf-dense-review-dialog,.tf-review-dialog,.tf-profile-dialog)>.modal-close:hover{color:#fff!important;background:#3a8ede38!important}.platform .tf-question-head{padding-right:76px}@keyframes vizGrow{0%{opacity:.2;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes vizValueIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (max-width:1450px){.platform.platform{--teacher-modal-sidebar:184px}}@media (max-width:1200px){.event-visual-pair,.tf-event-visual-pair{grid-template-columns:1fr}.tf-event-columns{grid-template-columns:1fr!important}.viz-category-bars{--viz-chart-height:230px}}@media (max-width:900px){.platform.platform{--teacher-modal-sidebar:0px;--teacher-modal-top:82px}:is(.platform .tf-dialog-backdrop,.platform .modal-backdrop:has(.tf-question-modal),.platform .modal-backdrop:has(.tf-step-modal-final)){padding:var(--teacher-modal-top) 12px 12px!important}.platform .tf-dialog-backdrop :where(.tf-dense-review-dialog,.tf-review-dialog,.tf-profile-dialog),.platform :where(.tf-question-modal,.tf-step-modal-final){width:calc(100vw - 24px)!important}.home-skill-bars{grid-template-columns:repeat(8,minmax(76px,1fr));overflow-x:auto}}@media (prefers-reduced-motion:reduce){.viz-column i,.viz-value{opacity:1!important;animation:none!important;transform:none!important}.viz-column i,.viz-tooltip{transition:none!important}}.skill-training-page .mini-theory:has(.theory-start){flex-direction:column;display:flex;overflow:hidden}.skill-training-page .theory-start{text-align:center;background:0 0;border:0;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:18px;min-height:250px;padding:28px 20px;display:flex}.skill-training-page .theory-start-button{border-radius:9px;width:auto;min-width:190px;min-height:46px;padding:11px 24px;font-size:14px;font-weight:850;transition:filter .2s,box-shadow .2s;box-shadow:inset 0 1px #ffffff57,0 8px 20px #0a6fcf3d;color:#fff!important;background:linear-gradient(#2f98ed 0,#0b70d5 56%,#075eb8 100%)!important;border:1px solid #3d9cf0!important}:is(.skill-training-page .theory-start-button:hover,.skill-training-page .theory-start-button:focus-visible){filter:brightness(1.08)saturate(1.08);box-shadow:inset 0 1px #ffffff6b,0 10px 24px #0a6fcf57}.skill-training-page .theory-start>span{max-width:480px;color:var(--muted);font-size:13px;line-height:1.65}.platform.dark .skill-training-page .theory-start-button{box-shadow:inset 0 1px #ffffff47,0 8px 22px #0d77db4d;border-color:#55aaf2!important}.learning-events-view .event-grid{align-items:start}.learning-events-view .recent-events{box-sizing:border-box;flex-direction:column;height:264px;min-height:0;display:flex;overflow:hidden}.learning-events-view .recent-events>h3{flex:none}.learning-events-view .recent-events .scroll-table{flex:auto;min-height:0;max-height:none;overflow:auto}.teacher-final .tf-home-overview-grid{align-items:stretch}.teacher-final .tf-home-overview-grid>.tf-panel:first-child{height:auto}.teacher-final .tf-mini-progress{flex:none;align-items:start}.teacher-final .tf-mini-progress article{grid-template-rows:auto auto;height:auto;padding-bottom:10px}.teacher-final .tf-mini-progress article>.teacher-class-bars{height:auto;min-height:0}.teacher-final .teacher-class-bars .viz-category-bars{--viz-chart-height:245px;height:245px;padding-top:20px}.reports-page .overall-report>.flower-score{flex:0 0 var(--flower-size)}.flower-score{--flower-size:272px;--center-size:104px;--petal-long:112px;--petal-short:92px;--petal-overlap:28px;width:var(--flower-size);height:var(--flower-size);isolation:isolate;position:relative}.flower-petal{box-sizing:border-box;z-index:1;color:#fff;text-align:center;filter:saturate(.96);box-shadow:inset 0 1px #ffffff47,0 8px 20px var(--petal-glow);border:1px solid #ffffff3d;outline:none;flex-direction:column;justify-content:center;align-items:center;transition:transform .2s,filter .2s,opacity .2s;animation:.55s cubic-bezier(.16,1,.3,1) both flowerOpen;display:flex;position:absolute}.flower-petal span{letter-spacing:.05em;white-space:nowrap;text-shadow:0 1px 3px #04142a5c;max-width:68px;font-size:10px;font-weight:850;line-height:1}.flower-petal b{font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 2px 6px #04142a57;max-width:72px;margin-top:4px;font-size:19px;line-height:1}.flower-petal.petal-1{left:calc(50% - var(--petal-short)/2);width:var(--petal-short);height:var(--petal-long);padding-bottom:var(--petal-overlap);--petal-glow:#2f85ee40;background:radial-gradient(circle at 48% 22%,#8bc8ff 0,#348cf0 42%,#2668dcc7 100%);border-radius:58% 58% 43% 43%/72% 72% 34% 34%;animation-delay:30ms;top:0}.flower-petal.petal-2{left:calc(50% + var(--center-size)/2 - var(--petal-overlap));top:calc(50% - var(--petal-short)/2);width:var(--petal-long);height:var(--petal-short);padding-left:var(--petal-overlap);--petal-glow:#e79e2b3b;background:radial-gradient(circle at 72% 42%,#ffdc79 0,#efa72f 44%,#de781fcc 100%);border-radius:43% 67% 67% 43%/48% 61% 61% 48%;animation-delay:90ms}.flower-petal.petal-3{left:calc(50% - var(--petal-short)/2);top:calc(50% + var(--center-size)/2 - var(--petal-overlap));width:var(--petal-short);height:var(--petal-long);padding-top:var(--petal-overlap);--petal-glow:#1eb3ae3d;background:radial-gradient(circle at 48% 76%,#77e5d4 0,#27b9b0 44%,#108497d1 100%);border-radius:43% 43% 60% 60%/34% 34% 72% 72%;animation-delay:.15s}.flower-petal.petal-4{left:0;top:calc(50% - var(--petal-short)/2);width:var(--petal-long);height:var(--petal-short);padding-right:var(--petal-overlap);--petal-glow:#784fda3d;background:radial-gradient(circle at 28% 42%,#c1a2ff 0,#8057dc 44%,#6037becc 100%);border-radius:67% 43% 43% 67%/61% 48% 48% 61%;animation-delay:.21s}:is(.flower-score:has(.flower-petal:hover) .flower-petal:not(:hover),.flower-score:has(.flower-petal:focus-visible) .flower-petal:not(:focus-visible)){opacity:.7;filter:saturate(.72)}:is(.flower-petal:hover,.flower-petal:focus-visible){z-index:2;filter:saturate(1.1)brightness(1.08);box-shadow:inset 0 1px #ffffff61,0 10px 26px var(--petal-glow);transform:scale(1.055)}.flower-core{box-sizing:border-box;z-index:3;left:calc(50% - var(--center-size)/2);top:calc(50% - var(--center-size)/2);width:var(--center-size);height:var(--center-size);color:#0a2747;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fafdfff0;border:2px solid #649ed738;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;animation:.45s .2s both flowerCoreIn;display:flex;position:absolute;box-shadow:inset 0 1px #ffffffeb,0 11px 30px #0b3d6c38,0 0 0 5px #7dbef114}.flower-core span{color:#314f6e;white-space:nowrap;max-width:96px;font-size:11px;font-weight:850;line-height:1.1}.flower-core strong{font-variant-numeric:tabular-nums;white-space:nowrap;max-width:100px;margin:6px 0 3px;font-size:41px;line-height:.95}.flower-core small{color:#58748f;font-size:10px;line-height:1}.platform.dark .flower-core{color:#0c2845;background:#e2effaeb;border-color:#a4cff557}.stage-progress{border:1px solid color-mix(in srgb,var(--border) 75%,#8caac3);background:color-mix(in srgb,var(--soft) 74%,transparent);border-radius:8px;grid-template-columns:30fr 30fr 40fr;gap:4px;height:14px;margin-top:8px;padding:1px;display:grid;overflow:hidden;box-shadow:inset 0 2px 3px #13365421,0 3px 8px #16436914}.stage-progress>.stage-segment{border-radius:5px;height:10px;display:block;position:relative;background:color-mix(in srgb,var(--border) 58%,transparent)!important;border:0!important;margin:0!important;overflow:hidden!important;transform:none!important;box-shadow:inset 0 1px 2px #1537551f!important}.stage-progress>.stage-segment:after{content:none!important}.stage-progress>.stage-segment>em{border-radius:5px;height:100%;transition:filter .2s,box-shadow .2s;display:block;position:relative}.stage-progress>.stage-1>em{background:linear-gradient(#ffe789 0,#e8b834 55%,#c99113 100%);box-shadow:inset 0 2px #fffbd39e,0 0 9px #e1ae2838}.stage-progress>.stage-2>em{background:linear-gradient(#87cafc 0,#348fdf 55%,#176fc2 100%);box-shadow:inset 0 2px #e1f6ff8c,0 0 9px #2b8bdc3d}.stage-progress>.stage-3>em{background:linear-gradient(#8be2b1 0,#35aa6d 55%,#1b8050 100%);box-shadow:inset 0 2px #e3ffee8f,0 0 9px #2ea4653b}.experiment-progress-item:hover .stage-progress em,.experiment-progress-item:focus .stage-progress em,.tf-progress-3d>div:hover .stage-progress em{filter:saturate(1.12)brightness(1.06)}.platform.dark .stage-progress{background:#07172794;border-color:#6f9cc44d;box-shadow:inset 0 2px 3px #00000061}.platform.dark .stage-progress>.stage-segment{background:#5a79942e!important}.tf-progress-3d .stage-progress{margin:8px 3px 7px}@keyframes flowerOpen{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes flowerCoreIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (max-width:1200px){.teacher-final .teacher-class-bars .viz-category-bars{--viz-chart-height:220px;height:220px}}@media (max-width:760px){.reports-page .overall-report>.flower-score{flex-basis:250px}.flower-score{transform-origin:0;transform:scale(.92)}}@media (prefers-reduced-motion:reduce){.flower-petal,.flower-core{animation:none!important}.flower-petal{transition:none!important}}
