@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg: #F8FAFE;--surface: #FFFFFF;--surface-2: #EEF2FB;--glass: rgba(255, 255, 255, .52);--glass-2: rgba(255, 255, 255, .72);--glass-edge:rgba(255, 255, 255, .95);--ink: #16181F;--ink-2: #3B4150;--ink-3: #767E8E;--hairline: #DCE2EC;--hairline-2:#E8ECF4;--accent: #0A6CF0;--accent-hi: #2D86FF;--indigo: #4661D9;--violet: #7A5AF0;--ly: #0A6CF0;--hoa: #0E9E73;--toan: #7A5AF0;--verified: #0E9E73;--unverified: #9A6B12;--warn-glass: rgba(252, 245, 233, .62);--warn-bd: rgba(154, 107, 18, .22);--ok-glass: rgba(233, 247, 241, .62);--ok-bd: rgba(14, 158, 115, .22);--board: #FFFFFF;--board-grid: rgba(22, 24, 31, .05);--r-sm: 10px;--r: 14px;--r-lg: 22px;--r-xl: 30px;--r-pill: 980px;--lift: 0 26px 74px -28px rgba(20, 28, 64, .36);--lift-sm: 0 12px 36px -20px rgba(20, 28, 64, .22);--font: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.02em}a{color:inherit;text-decoration:none}input,textarea,button{font-family:inherit}::selection{background:#0a6cf024}.lens-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 32%,transparent 58%);mask-image:linear-gradient(180deg,#000 0%,#000 32%,transparent 58%)}.aurora span{position:absolute;border-radius:50%;filter:blur(76px);opacity:.95}.aurora .a1{width:840px;height:620px;top:-230px;left:-170px;background:radial-gradient(circle at 40% 40%,rgba(10,108,240,.24),transparent 68%)}.aurora .a2{width:700px;height:580px;top:-150px;right:-150px;background:radial-gradient(circle at 60% 40%,rgba(122,90,240,.18),transparent 70%)}.aurora .a3{width:580px;height:460px;top:150px;left:33%;background:radial-gradient(circle at 50% 50%,rgba(14,158,115,.1),transparent 72%)}.glow-floor{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;background:radial-gradient(50% 38% at 86% 22%,rgba(122,90,240,.08),transparent 72%),radial-gradient(46% 36% at 6% 52%,rgba(10,108,240,.07),transparent 74%),radial-gradient(52% 40% at 78% 80%,rgba(45,134,255,.06),transparent 74%)}@media (prefers-reduced-motion: no-preference){@keyframes drift1{0%,to{transform:translateZ(0)}50%{transform:translate3d(38px,26px,0)}}@keyframes drift2{0%,to{transform:translateZ(0)}50%{transform:translate3d(-30px,18px,0)}}@keyframes drift3{0%,to{transform:translateZ(0)}50%{transform:translate3d(22px,-22px,0)}}.aurora .a1{animation:drift1 24s ease-in-out infinite}.aurora .a2{animation:drift2 28s ease-in-out infinite}.aurora .a3{animation:drift3 32s ease-in-out infinite}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.rise{opacity:0;animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}.d1{animation-delay:.05s}.d2{animation-delay:.13s}.d3{animation-delay:.22s}.d4{animation-delay:.32s}.d5{animation-delay:.42s}.d6{animation-delay:.52s}.d7{animation-delay:.62s}}.topbar{position:sticky;top:0;z-index:60;background:#f8fafe99;backdrop-filter:saturate(180%) blur(26px);-webkit-backdrop-filter:saturate(180%) blur(26px);border-bottom:1px solid var(--hairline-2)}.topbar-in{display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:0 auto;padding:16px 48px}.brand{display:flex;align-items:center;gap:12px}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--ink-2);padding:6px 12px;border-radius:var(--r-pill);margin-right:4px;transition:background .2s ease,color .2s ease}.back-link:hover{color:var(--ink);background:#ffffffb3}.brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,#2d86ff,#7a5af0 92%)}.brand-name{font-size:16px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.brand-sub{font-size:12px;color:var(--ink-3)}.lib-link{font-size:14px;font-weight:500;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:var(--r-pill);transition:background .2s ease,color .2s ease}.lib-link svg{color:var(--ink-3)}.lib-link:hover{background:#ffffffb3;color:var(--ink)}.btn{font-family:var(--font);font-size:14px;font-weight:600;letter-spacing:-.01em;border-radius:var(--r-pill);border:1px solid var(--hairline);background:var(--surface);color:var(--ink);padding:11px 20px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .12s ease}.btn:hover{background:var(--surface-2);border-color:var(--ink-3)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);padding:12px 24px}.btn-primary:hover{background:var(--accent-hi);border-color:var(--accent-hi)}.btn-ghost{border-color:transparent;background:transparent;color:var(--ink-2)}.btn-ghost:hover{background:var(--surface-2)}.btn-sm{padding:9px 17px;font-size:13px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;border-radius:var(--r-pill);padding:5px 12px;vertical-align:middle;background:var(--glass-2);border:1px solid var(--hairline);backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px)}.badge svg{flex:none}.badge.unverified{color:var(--unverified);background:var(--warn-glass);border-color:var(--warn-bd)}.badge.verified{color:var(--verified);background:var(--ok-glass);border-color:var(--ok-bd)}.valid-pill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--verified);background:var(--ok-glass);border:1px solid var(--ok-bd);border-radius:var(--r-pill);padding:5px 12px;backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px)}.valid-pill svg{flex:none}.article{max-width:1180px;margin:0 auto;padding:0 48px 200px}.spread{display:grid;grid-template-columns:168px minmax(0,1fr);gap:0 56px}@media (max-width: 880px){.topbar-in{padding:16px 24px}.article{padding:0 24px 200px}.spread{grid-template-columns:1fr;gap:0}.margin-note{display:none}}.margin-note{grid-column:1;padding-top:14px;font-size:12px;line-height:1.5;color:var(--ink-3);text-align:right}.margin-note .mn-num{font-family:var(--mono);font-size:12px;color:var(--ink-2);letter-spacing:.02em;margin-bottom:2px}.col{grid-column:2;min-width:0}.kicker{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}.kicker:before{content:"";width:34px;height:2px;background:var(--ly);border-radius:2px}.hero{padding:64px 0 0}.hero .kicker{margin-bottom:26px}.display{font-size:clamp(46px,6.2vw,74px);font-weight:800;letter-spacing:-.045em;line-height:.99;max-width:13ch}.display .lead{color:var(--ly)}.lede{margin-top:28px;max-width:42ch;font-size:18px;font-weight:300;line-height:1.5;color:var(--ink-2);letter-spacing:-.01em}.lede strong{font-weight:500;color:var(--ink)}.composer{margin-top:32px;position:relative;border-radius:var(--r-xl);background:var(--glass);backdrop-filter:saturate(190%) blur(32px);-webkit-backdrop-filter:saturate(190%) blur(32px);border:1px solid var(--glass-edge);box-shadow:var(--lift);padding:24px;transition:box-shadow .3s ease}.composer:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 1px #fffffff2;pointer-events:none}.composer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,#ffffff6b,#fff0 44%)}.composer>*{position:relative}.composer:focus-within{box-shadow:0 0 0 4px #0a6cf029,var(--lift)}.composer-eyebrow{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.composer-field{width:100%;border:none;outline:none;resize:none;margin-top:15px;font-family:var(--font);font-size:24px;font-weight:300;line-height:1.45;letter-spacing:-.016em;color:var(--ink);background:transparent}.composer-field::placeholder{color:var(--ink-3)}.composer-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;padding-top:20px;border-top:1px solid var(--hairline-2)}.composer-hint{font-size:13px;color:var(--ink-3);display:inline-flex;align-items:center;gap:7px;max-width:40ch}.composer-hint svg{color:var(--verified);flex:none}.agent-composer{padding-top:24px}.agent-composer-head,.agent-send-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}.agent-status{display:inline-flex;align-items:center;gap:7px;margin-top:7px;color:var(--ink-3);font-size:12px}.agent-status-dot{width:7px;height:7px;border-radius:50%;background:var(--verified);box-shadow:0 0 0 4px #0e9e731c}.agent-reset,.agent-delegate{border:0;background:transparent;color:var(--accent);cursor:pointer;font-family:var(--font);font-size:12px;font-weight:700}.agent-reset:hover,.agent-delegate:hover{text-decoration:underline}.agent-delegate{min-height:42px;padding:0 17px;border:1px solid rgba(10,108,240,.72);border-radius:var(--r-pill);background:var(--accent);color:#fff;box-shadow:0 8px 22px -14px #0a6cf0e6}.agent-delegate:hover{background:#075ccf;text-decoration:none;transform:translateY(-1px)}.agent-delegate:disabled{opacity:.48;cursor:default}.experiment-chat{display:flex;flex-direction:column;gap:15px;max-height:390px;margin:22px -4px 4px;padding:4px 12px 12px 4px;overflow-y:auto;scrollbar-width:thin}.experiment-chat-row{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.experiment-chat-row.user{align-items:flex-end}.experiment-chat-who{padding:0 4px;color:var(--ink-3);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.experiment-chat-bubble{max-width:min(88%,620px);padding:12px 15px;border:1px solid var(--hairline-2);border-radius:5px 16px 16px;background:#ffffffe6;color:var(--ink);font-size:14px;line-height:1.55;box-shadow:0 6px 20px -20px #141c4099}.experiment-chat-row.user .experiment-chat-bubble{border-color:#0a6cf038;border-radius:16px 5px 16px 16px;background:var(--accent);color:#fff}.agent-input{min-height:74px;margin-top:12px;padding-top:16px;border-top:1px solid var(--hairline-2);font-size:17px}.agent-send-wrap{justify-content:flex-end}@media (max-width: 620px){.agent-composer-head,.composer-foot,.agent-send-wrap{align-items:stretch;flex-direction:column}.agent-reset{align-self:flex-start;padding:0}.agent-delegate,.agent-send-wrap .btn{width:100%}.experiment-chat-bubble{max-width:94%}.agent-send-wrap .composer-hint{display:none}}.controls{margin-top:32px}.controls-head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:22px}.controls-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.subject-seg{display:inline-flex;gap:3px;padding:4px;background:var(--glass-2);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border:1px solid rgba(255,255,255,.8);border-radius:var(--r-pill)}.subject-opt{font-size:14px;font-weight:600;color:var(--ink-2);padding:7px 17px;border-radius:var(--r-pill);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s ease,background .2s ease}.subject-opt:hover{color:var(--ink)}.subject-opt.on{background:var(--surface);color:var(--ink);box-shadow:var(--lift-sm)}.subject-hint{font-size:13px;color:var(--ink-3)}.examples-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:30px 0 6px}.example-list{display:flex;flex-direction:column;border-top:1px solid var(--hairline-2)}.example-row{display:flex;align-items:center;gap:16px;padding:15px 4px;border-bottom:1px solid var(--hairline-2);cursor:pointer;transition:padding-left .2s ease,color .2s ease}.example-row:hover{padding-left:12px}.ex-subj{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;width:42px;flex:none;color:var(--ink-3)}.example-row.ly .ex-subj{color:var(--ly)}.example-row.toan .ex-subj{color:var(--toan)}.example-row.hoa .ex-subj{color:var(--hoa)}.ex-text{font-size:16px;font-weight:400;color:var(--ink-2);flex:1;min-width:0}.example-row:hover .ex-text{color:var(--ink)}.ex-arrow{color:var(--ink-3);flex:none;opacity:0;transform:translate(-6px);transition:opacity .2s ease,transform .2s ease}.example-row:hover .ex-arrow{opacity:1;transform:none}.sec{margin-top:48px}.sec-rule{display:flex;align-items:baseline;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--ink);margin-bottom:34px}.sec-folio{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--ink-3);letter-spacing:.04em}.sec-title{font-size:24px;font-weight:700;letter-spacing:-.025em;flex:1}.sec-meta{font-size:13px;color:var(--ink-3)}.gpanel{position:relative;margin-top:4px;background:var(--glass-2);backdrop-filter:saturate(170%) blur(22px);-webkit-backdrop-filter:saturate(170%) blur(22px);border:1px solid var(--glass-edge);border-radius:var(--r-lg);padding:6px 28px 24px;overflow:hidden}.gpanel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px #ffffffeb}.read{display:grid;grid-template-columns:156px minmax(0,1fr)}.read-row{display:contents}.read-row>.read-key,.read-row>.read-val{padding:22px 0;border-bottom:1px solid var(--hairline-2)}.read-row:last-child>.read-key,.read-row:last-child>.read-val{border-bottom:none}.read-key{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding-right:24px}.read-val{font-size:18px;color:var(--ink)}.model-name{font-size:24px;font-weight:700;letter-spacing:-.02em}.read-sub{display:block;font-size:14px;font-weight:300;color:var(--ink-2);margin-top:8px;line-height:1.55;max-width:54ch}.badge.unverified.inline{margin-left:14px}.params{margin-top:4px;border-top:1px solid var(--hairline-2)}.param{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:16px;padding:13px 2px;border-bottom:1px solid var(--hairline-2)}.param-name{font-size:15px;font-weight:400;color:var(--ink-2)}.param-name .sym{font-family:var(--mono);font-size:13px;color:var(--ink-3);margin-left:8px}.param-val{font-family:var(--mono);font-size:17px;font-weight:500;color:var(--ink);display:inline-flex;align-items:baseline;gap:6px;justify-content:flex-end}.param-val .u{font-size:12px;color:var(--ink-3)}.param.missing .param-val{color:var(--unverified);font-family:var(--font);font-size:12px;font-weight:600;font-style:normal;display:inline-flex;align-items:center;gap:7px;background:var(--warn-glass);border:1px dashed var(--warn-bd);border-radius:var(--r-pill);padding:4px 12px;backdrop-filter:saturate(160%) blur(8px);-webkit-backdrop-filter:saturate(160%) blur(8px)}.param.missing .param-val .wdot{width:6px;height:6px;border-radius:50%;background:var(--unverified);flex:none}.param-fill{font-size:14px;font-weight:300;color:var(--ink-2);margin-top:14px;line-height:1.55;max-width:56ch}.param-fill strong{font-family:var(--mono);font-weight:500;color:var(--ink);font-size:13.5px}.sources{display:flex;flex-direction:column;margin-top:4px}.source{display:grid;grid-template-columns:76px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--hairline-2)}.source:first-child{border-top:1px solid var(--hairline-2)}.source-id{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink-2);letter-spacing:.03em;padding-top:2px}.source-title{font-size:15px;font-weight:600;color:var(--ink)}.source-snip{font-size:14px;font-weight:300;font-style:italic;color:var(--ink-2);margin-top:5px;line-height:1.5}.confirm{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:38px}.confirm-note{font-size:14px;font-weight:300;color:var(--ink-2);max-width:46ch}.figure{margin-top:38px}.figure-frame{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r);overflow:hidden}.figure-stage{padding:22px 26px 10px;background:var(--surface)}.figure-stage svg,.figure-stage img{display:block;width:100%;height:auto}.readout{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hairline);background:var(--surface)}@media (max-width: 620px){.readout{grid-template-columns:repeat(2,1fr)}}.readout-cell{padding:16px 20px;border-right:1px solid var(--hairline-2)}.readout-cell:last-child{border-right:none}.readout-k{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.readout-v{font-family:var(--mono);font-size:19px;font-weight:500;color:var(--ink);margin-top:5px;letter-spacing:-.01em}.readout-v .u{font-size:11px;color:var(--ink-3);margin-left:3px}.readout-v.ok{color:var(--verified)}.figcap{display:flex;gap:16px;align-items:baseline;margin-top:20px;padding-left:2px}.figcap-tag{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-.01em;flex:none}.figcap-text{font-size:14px;font-weight:300;color:var(--ink-2);line-height:1.55}.figcap-text .mono{font-family:var(--mono);font-size:13px;color:var(--ink)}.verify-line{display:inline-flex;align-items:center;gap:9px;margin-top:26px;font-size:14px;font-weight:500;color:var(--verified)}.verify-line svg{flex:none}.verify-line .vsub{color:var(--ink-3);font-weight:300}.savebar{position:fixed;left:0;right:0;bottom:0;z-index:70;background:#f8fafea8;backdrop-filter:saturate(180%) blur(26px);-webkit-backdrop-filter:saturate(180%) blur(26px);border-top:1px solid var(--hairline-2)}.savebar-in{max-width:1180px;margin:0 auto;padding:14px 48px;display:flex;align-items:center;gap:16px}@media (max-width: 880px){.savebar-in{padding:14px 24px}}.savebar-status{font-size:13.5px;font-weight:400;color:var(--ink-2);display:flex;align-items:center;gap:9px}.savebar-status svg{color:var(--ink-3);flex:none}.savebar-status .mono{font-family:var(--mono);font-size:12px;color:var(--ink-3)}.savebar-actions{margin-left:auto;display:flex;align-items:center;gap:12px;position:relative}.publish-pop{position:relative}.publish-pop>summary{list-style:none;cursor:pointer}.publish-pop>summary::-webkit-details-marker{display:none}.pop-panel{position:absolute;right:0;bottom:calc(100% + 12px);width:326px;background:var(--glass-2);backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border:1px solid var(--glass-edge);border-radius:var(--r);box-shadow:var(--lift);padding:18px}.pop-title{font-size:15px;font-weight:600;margin-bottom:4px;letter-spacing:-.01em}.pop-sub{font-size:13px;color:var(--ink-3);margin-bottom:14px}.visib-opt{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid var(--hairline);border-radius:var(--r-sm);margin-bottom:10px;cursor:pointer;background:var(--surface);transition:border-color .2s ease,background .2s ease}.visib-opt:hover{background:var(--surface-2)}.visib-opt.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.visib-radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--hairline);flex:none;margin-top:1px;display:grid;place-items:center}.visib-opt.sel .visib-radio{border-color:var(--accent)}.visib-opt.sel .visib-radio:after{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent)}.visib-ico{color:var(--ink-2);flex:none;margin-top:1px}.visib-name{font-size:14px;font-weight:600}.visib-desc{font-size:12.5px;color:var(--ink-3);margin-top:2px}.pop-foot{display:flex;gap:8px;margin-top:6px}.pop-foot .btn{flex:1;justify-content:center}.pop-note{font-size:12px;color:var(--ink-3);margin-top:12px;display:flex;gap:7px;align-items:flex-start;line-height:1.5}.pop-note svg{flex:none;margin-top:1px;color:var(--unverified)}.app{max-width:1180px;margin:0 auto;padding:0 48px 120px}@media (max-width: 880px){.app{padding:0 24px 120px}}.assign-banner{position:relative;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 22px;margin-top:24px;border:1px solid var(--hairline);border-radius:var(--r);background:var(--glass-2);backdrop-filter:saturate(170%) blur(20px);-webkit-backdrop-filter:saturate(170%) blur(20px);overflow:hidden}.assign-banner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px #ffffffeb}.assign-banner:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--accent),var(--violet))}.assign-ico{color:var(--accent);flex:none}.assign-body{flex:1;min-width:0}.assign-title{font-size:15px;font-weight:600;letter-spacing:-.01em}.assign-meta{font-size:13px;color:var(--ink-2);margin-top:2px}.assign-meta .mono{font-family:var(--mono)}.assign-due{font-size:13px;font-weight:600;color:var(--ink-2);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-pill);padding:6px 14px}.object-head{padding:24px 0 6px}.object-kicker{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--ink-3)}.object-title{font-size:clamp(40px,5.4vw,56px);font-weight:800;letter-spacing:-.04em;line-height:1.02;margin-top:10px}.object-desc{color:var(--ink-2);margin-top:16px;max-width:64ch;font-size:18px;font-weight:300;line-height:1.55}.pulse{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:30px;margin-top:26px;padding:18px 26px;border:1px solid var(--glass-edge);border-radius:var(--r);background:var(--glass-2);backdrop-filter:saturate(170%) blur(20px);-webkit-backdrop-filter:saturate(170%) blur(20px);overflow:hidden}.pulse:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px #ffffffeb}.pulse-item{display:flex;flex-direction:column;gap:3px}.pulse-label{font-size:12px;font-weight:500;color:var(--ink-3)}.pulse-value{font-family:var(--mono);font-size:17px;font-weight:500;color:var(--ink)}.pulse-value.ok{color:var(--verified)}.pulse-sep{width:1px;height:30px;background:var(--hairline)}.tabs{display:inline-flex;gap:4px;margin-top:26px;padding:4px;background:var(--glass-2);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border:1px solid rgba(255,255,255,.8);border-radius:var(--r-pill)}.tab{padding:9px 20px;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer;border-radius:var(--r-pill);-webkit-user-select:none;user-select:none;transition:color .22s cubic-bezier(.4,0,.2,1),background .22s cubic-bezier(.4,0,.2,1),box-shadow .22s cubic-bezier(.4,0,.2,1)}.tab:hover{color:var(--ink)}#lens-overview:checked~.object-head .tab[for=lens-overview],#lens-force:checked~.object-head .tab[for=lens-force],#lens-energy:checked~.object-head .tab[for=lens-energy]{color:var(--ink);background:var(--surface);box-shadow:var(--lift-sm)}.lens-panel{display:none}#lens-overview:checked~.panel-overview,#lens-force:checked~.panel-force,#lens-energy:checked~.panel-energy{display:block}.grid{display:grid;gap:24px;margin-top:28px;align-items:start}.grid-overview{grid-template-columns:minmax(0,1fr) 380px}@media (max-width: 1000px){.grid-overview{grid-template-columns:1fr}}.col-mid,.col-side{display:flex;flex-direction:column;gap:24px;min-width:0}.student-workspace-compact.app{max-width:1320px;padding-top:16px;padding-bottom:64px}.student-workspace-compact .assign-banner{margin-top:0;padding:10px 16px;gap:10px}.student-workspace-compact .assign-meta{font-size:12px}.student-workspace-compact .object-head{padding:14px 0 4px}.student-workspace-compact .object-title{margin-top:5px;font-size:clamp(28px,3.4vw,38px);line-height:1.08}.student-workspace-compact .object-desc{display:-webkit-box;max-width:92ch;margin-top:8px;overflow:hidden;font-size:14px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.student-workspace-compact .pulse{gap:18px;margin-top:12px;padding:10px 16px}.student-workspace-compact .pulse-item{gap:1px}.student-workspace-compact .pulse-label{font-size:10.5px}.student-workspace-compact .pulse-value{font-size:14px}.student-workspace-compact .pulse-sep{height:24px}.student-workspace-compact .tabs{margin-top:12px}.student-workspace-compact .tab{padding:7px 15px;font-size:12.5px}.student-workspace-compact .grid{gap:16px;margin-top:14px}.student-workspace-compact .grid-overview{grid-template-columns:minmax(0,1fr) 330px}.student-workspace-compact .col-mid,.student-workspace-compact .col-side{gap:14px}.student-workspace-compact .board-head{padding:10px 14px}.student-workspace-compact .lab-stage{padding:10px 12px 8px}.student-workspace-compact .col-side .card-head{padding:10px 14px}.student-workspace-compact .col-side .card-body{padding:12px 14px}.student-workspace-compact .col-side .derived{padding:10px 12px}.student-workspace-compact .col-side .derived-val{font-size:19px}.student-workspace-compact .col-side .num-row{padding:7px 0}.student-workspace-compact .col-side .spec-param{padding:6px 0!important}@media (max-width: 1000px){.student-workspace-compact .grid-overview{grid-template-columns:1fr}}.board{position:relative;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--board);overflow:hidden}.board-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;border-bottom:1px solid var(--hairline-2)}.board-title{font-size:14px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:9px;letter-spacing:-.01em}.board-title .ico{color:var(--ink-3);display:grid;place-items:center}.sim-tag{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--accent);background:#0a6cf014;border:1px solid rgba(10,108,240,.2);border-radius:var(--r-pill);padding:5px 12px}.sim-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.pov-badge{font-size:12px;font-weight:600;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-pill);padding:5px 13px}@media (prefers-reduced-motion: no-preference){@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.35}}.sim-dot{animation:pulseDot 1.8s ease-in-out infinite}}.lab-stage{position:relative;padding:18px 20px 8px}.lab-stage img,.lab-stage svg{display:block;width:100%;height:auto}.lab-play{position:absolute;left:28px;bottom:22px;width:44px;height:44px;border-radius:50%;border:1px solid var(--accent);background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px #0a6cf047;transition:transform .15s ease,background .2s ease}.lab-play:hover{transform:scale(1.06);background:var(--accent-hi)}.lab-play svg{margin-left:2px}.lab-caption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;padding:12px 20px 18px;font-size:13.5px;color:var(--ink-2)}.lab-caption .card-note{color:var(--ink-3);font-family:var(--mono);font-size:12px}.plot-toolbar{display:inline-flex;gap:4px;padding:3px;background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-pill)}.seg{font-family:var(--mono);font-size:11px;font-weight:500;padding:5px 12px;border-radius:var(--r-pill);color:var(--ink-2);cursor:pointer;transition:color .2s ease,background .2s ease}.seg.on{background:var(--surface);color:var(--ink);box-shadow:var(--lift-sm)}.plot-stage{position:relative;padding:8px 20px 4px;background:var(--board)}.plot-stage svg,.plot-stage img{display:block;width:100%;height:auto}.series-plot-stack{width:100%}.series-plot-container{position:relative;width:100%}.series-plot-container+.series-plot-container{border-top:1px solid var(--hairline-2);padding-top:10px}.series-plot-container>svg{display:block;width:100%;height:auto}.plot-legend{display:flex;gap:20px;flex-wrap:wrap;padding:8px 20px 18px;font-size:12.5px;color:var(--ink-2)}.plot-legend .card-note{color:var(--ink-3);font-family:var(--mono)}.legend-dot{display:inline-block;width:14px;height:2px;border-radius:2px;margin-right:7px;vertical-align:middle}.plot-axis-text,.plot-axis-label,.plot-axis-unit{fill:var(--ink-3);font-family:var(--mono);font-size:11px}.plot-axis-label{font-size:10px}.plot-axis-unit{font-weight:600}.plot-zero-line{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:4 5}.plot-zero-line-secondary{opacity:.5}.plot-playback-guide,.plot-hover-guide{pointer-events:none;stroke:var(--hairline);stroke-dasharray:3 4}.plot-hover-guide{stroke:var(--ink-3)}.plot-playback-point,.plot-hover-point{pointer-events:none;filter:drop-shadow(0 1px 2px rgba(22,24,31,.2))}.plot-playback-point{transition:cx 80ms linear,cy 80ms linear}.plot-tooltip{position:absolute;background:var(--surface);border:1px solid var(--hairline);border-radius:8px;padding:12px 14px;box-shadow:var(--lift-sm);z-index:100;pointer-events:none;min-width:150px;max-width:260px;transition:opacity .15s ease;animation:tooltipFadeIn .15s ease}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tooltip-time{font-weight:600;margin-bottom:8px;color:var(--ink);border-bottom:1px solid var(--hairline-2);padding-bottom:6px;font-family:var(--mono);font-size:12px}.tooltip-line{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:6px;font-family:var(--mono)}.tooltip-label{color:var(--ink-2);font-weight:500}.tooltip-value{color:var(--ink);font-weight:600;margin-left:auto}.tooltip-unit{color:var(--ink-3);font-size:11px;margin-left:4px}.legend-item{cursor:pointer;transition:opacity .2s ease,background .2s ease;padding:4px 10px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:6px}.legend-item:hover,.legend-item.highlighted{background:var(--surface-2)}.legend-item.highlighted{font-weight:600;color:var(--ink)}.legend-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.legend-unit{color:var(--ink-3);font-size:11px;margin-left:2px}.card{position:relative;border:1px solid var(--glass-edge);border-radius:var(--r);background:var(--glass-2);backdrop-filter:saturate(170%) blur(20px);-webkit-backdrop-filter:saturate(170%) blur(20px);overflow:hidden}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px #ffffffeb}.card-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;border-bottom:1px solid var(--hairline-2)}.card-title{font-size:15px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:9px}.card-title .ico{color:var(--ink-3);display:grid;place-items:center}.card-note{font-size:13px;color:var(--ink-3)}.card-body{position:relative;padding:20px}.derived-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.derived{border:1px solid var(--hairline);border-radius:var(--r-sm);padding:14px 16px;background:var(--surface)}.derived-label{font-size:12px;font-weight:500;color:var(--ink-3)}.derived-val{font-family:var(--mono);font-size:24px;font-weight:500;color:var(--ink);margin-top:4px;letter-spacing:-.02em}.derived-val .u{font-family:var(--mono);font-size:13px;color:var(--ink-3);margin-left:4px;font-weight:400}.num-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--hairline-2)}.num-row:last-child{border-bottom:none}.num-row .k{font-size:13.5px;color:var(--ink-2)}.num-row .v{font-family:var(--mono);font-size:15px;font-weight:500;color:var(--ink)}.tutor-card{display:flex;flex-direction:column}.chat{display:flex;flex-direction:column;height:100%}.chat-stream{position:relative;display:flex;flex-direction:column;gap:16px;padding:20px}.msg{display:flex;flex-direction:column;gap:5px;max-width:92%}.msg.user{align-self:flex-end;align-items:flex-end}.bubble{padding:12px 16px;border-radius:18px;font-size:14.5px;line-height:1.55}.msg.user .bubble{background:var(--accent);color:#fff;border-bottom-right-radius:6px}.msg.bot .bubble{background:var(--surface);border:1px solid var(--hairline-2);color:var(--ink);border-bottom-left-radius:6px}.msg-who{font-size:12px;font-weight:500;color:var(--ink-3)}.citations{display:flex;flex-direction:column;gap:7px;margin-top:6px}.cite{display:flex;gap:9px;font-size:12.5px;border:1px solid var(--hairline);border-radius:var(--r-sm);padding:9px 11px;background:var(--surface)}.cite-id{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink-2);background:var(--surface-2);border-radius:6px;padding:2px 7px;flex:none;height:fit-content}.cite-title{font-weight:600;color:var(--ink)}.cite-snip{color:var(--ink-2);font-style:italic;margin-top:2px}.chat-input{position:relative;display:flex;gap:10px;padding:14px;border-top:1px solid var(--hairline-2)}.chat-input input{flex:1;border:1px solid var(--hairline);border-radius:var(--r-pill);padding:11px 16px;font-family:var(--font);font-size:14px;outline:none;background:var(--surface);transition:border-color .2s ease,box-shadow .2s ease}.chat-input input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0a6cf024}.chat-input .btn-primary{border-radius:50%;padding:0;width:40px;height:40px;justify-content:center;flex:none}.tutor-launch{position:fixed;right:20px;bottom:20px;z-index:190;width:auto;margin:0;padding:10px 16px;font-size:13px;font-weight:600;background:#fffffff7;box-shadow:0 10px 30px #16181f26}.tutor-dock{position:fixed;right:20px;bottom:20px;z-index:200;width:min(360px,calc(100vw - 32px))}.tutor-dock .tutor-card{max-height:min(520px,calc(100vh - 40px));background:#fffffff7;box-shadow:0 18px 50px #16181f2e}.tutor-dock .card-head{padding:10px 14px}.tutor-dock .chat{min-height:0}.tutor-dock .chat-stream{min-height:100px;max-height:300px;overflow-y:auto;gap:10px;padding:12px}.tutor-dock .bubble{padding:9px 12px;font-size:13px;line-height:1.45}.tutor-dock .chat-input{gap:8px;padding:10px}.tutor-dock .chat-input input{padding:9px 13px;font-size:13px}.tutor-dock .chat-input .btn-primary{width:36px;height:36px}.tutor-collapse{border:0;padding:4px 7px;border-radius:var(--r-pill);cursor:pointer;color:var(--accent);background:var(--surface-2);font:550 11.5px var(--font)}.tutor-collapse:hover{background:#0a6cf01a}@media (max-width: 700px){.student-workspace-compact.app{padding-top:10px;padding-bottom:48px}.student-workspace-compact .assign-meta,.student-workspace-compact .pulse-sep{display:none}.student-workspace-compact .pulse{gap:12px 18px}.student-workspace-compact .tabs{display:flex;max-width:100%;overflow-x:auto}.student-workspace-compact .tab{flex:none}.tutor-launch{right:12px;bottom:12px}.tutor-dock{right:12px;bottom:12px;width:calc(100vw - 24px)}.tutor-dock .tutor-card{max-height:65vh}}.landing{max-width:1080px;margin:0 auto;padding:0 32px 96px}.landing-hero{padding:100px 0 16px;text-align:center;position:relative}.landing-eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}.landing-eyebrow:before,.landing-eyebrow:after{content:"";width:28px;height:2px;background:var(--ly);border-radius:2px}.landing-title{font-size:clamp(46px,6.4vw,68px);font-weight:800;letter-spacing:-.045em;line-height:1;margin-top:20px}.landing-title .lead{color:var(--ly)}.landing-lede{color:var(--ink-2);max-width:56ch;margin:24px auto 0;font-size:18px;font-weight:300;line-height:1.5}.chooser{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px;align-items:stretch}@media (max-width: 820px){.chooser{grid-template-columns:1fr}}.choose-card{position:relative;display:flex;flex-direction:column;text-decoration:none;color:inherit;border:1px solid var(--glass-edge);border-radius:var(--r-lg);padding:24px;background:var(--glass-2);backdrop-filter:saturate(170%) blur(22px);-webkit-backdrop-filter:saturate(170%) blur(22px);overflow:hidden;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s cubic-bezier(.2,.7,.2,1)}.choose-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px #ffffffeb}.choose-card:hover{transform:translateY(-4px);box-shadow:var(--lift)}.choose-card>*{position:relative}.choose-ico{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--hairline);margin-bottom:22px}.choose-card.teacher .choose-ico{color:var(--toan)}.choose-card.student .choose-ico{color:var(--hoa)}.choose-role{display:block;margin-bottom:6px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.choose-title{font-size:24px;font-weight:700;letter-spacing:-.025em;margin:0 0 10px}.choose-desc{color:var(--ink-2);font-size:16px;font-weight:300;line-height:1.5}.choose-list{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-direction:column;gap:11px}.choose-list li{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;color:var(--ink-2)}.choose-list li svg{flex:none;margin-top:3px}.choose-card.teacher .choose-list li svg{color:var(--toan)}.choose-card.student .choose-list li svg{color:var(--hoa)}.choose-go{display:inline-flex;align-items:center;gap:8px;margin-top:28px;font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--accent)}.choose-go svg{transition:transform .25s cubic-bezier(.4,0,.2,1)}.choose-card:hover .choose-go svg{transform:translate(4px)}.landing-note{margin-top:32px;text-align:center;font-size:14px;color:var(--ink-3);max-width:620px;margin-left:auto;margin-right:auto}.footer-note{margin-top:32px;padding-top:24px;border-top:1px solid var(--hairline);font-size:12.5px;color:var(--ink-3);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.footer-note span:last-child{font-family:var(--mono)}.student-home-layout{display:flex;gap:48px;align-items:flex-start}.student-sidebar{position:sticky;top:100px;width:200px;flex-shrink:0}.sidebar-nav{display:flex;flex-direction:column;gap:4px;background:var(--glass-2);backdrop-filter:saturate(170%) blur(20px);-webkit-backdrop-filter:saturate(170%) blur(20px);border:1px solid var(--glass-edge);border-radius:var(--r);padding:8px;overflow:hidden}.sidebar-item{display:flex;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:500;color:var(--ink-2);border-radius:var(--r-sm);transition:background .2s ease,color .2s ease}.sidebar-item:hover{background:var(--surface);color:var(--ink)}.sidebar-item.active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:var(--lift-sm)}.sidebar-item svg{flex-shrink:0}@media (max-width: 880px){.student-home-layout{flex-direction:column;gap:0}.student-sidebar{position:static;width:100%;margin-bottom:24px}.sidebar-nav{flex-direction:row;overflow-x:auto;padding:6px}.sidebar-item{flex-shrink:0;padding:10px 14px;font-size:13px}.sidebar-item span{white-space:nowrap}}@media (max-width: 600px){.student-sidebar .sidebar-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.student-sidebar .sidebar-item{min-width:0;justify-content:flex-start}.student-sidebar .sidebar-item span{min-width:0;white-space:normal}}.controls-catalog{margin-top:28px;padding-top:20px;border-top:1px solid var(--hairline-2)}.catalog-btn{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink-2);padding:10px 18px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--hairline);transition:background .2s ease,color .2s ease,border-color .2s ease}.catalog-btn:hover{background:var(--surface);color:var(--ink);border-color:var(--ink-3)}.catalog-btn svg{color:var(--ink-3);transition:transform .2s ease}.catalog-btn:hover svg{color:var(--accent);transform:translate(3px)}.auth-wrap{min-height:calc(100vh - 70px);display:grid;place-items:center;padding:40px 24px 80px}.auth-card{position:relative;width:100%;max-width:408px;padding:36px 34px 30px;border:1px solid var(--glass-edge);border-radius:var(--r-lg);background:var(--glass-2);backdrop-filter:saturate(170%) blur(22px);-webkit-backdrop-filter:saturate(170%) blur(22px);box-shadow:var(--lift);overflow:hidden}.auth-card-wide{max-width:540px}.auth-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px #ffffffeb}.auth-card>*{position:relative}.auth-eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.auth-title{font-size:27px;font-weight:800;letter-spacing:-.03em;margin:10px 0 6px}.auth-sub{font-size:14px;font-weight:300;color:var(--ink-2);margin-bottom:26px;line-height:1.5}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field label{font-size:12px;font-weight:600;color:var(--ink-3);letter-spacing:.02em}.field input{height:42px;border:1px solid var(--hairline);border-radius:var(--r-sm);padding:0 14px;font-family:var(--font);font-size:15px;color:var(--ink);background:var(--surface);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0a6cf024}.auth-card .btn-primary{width:100%;justify-content:center;margin-top:8px}.auth-error{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--unverified);background:var(--warn-glass);border:1px solid var(--warn-bd);border-radius:var(--r-sm);padding:11px 13px;margin-bottom:16px;line-height:1.5}.auth-error svg{flex:none;margin-top:1px}.auth-success{margin-bottom:16px;padding:10px 12px;border:1px solid rgba(8,115,83,.2);border-radius:var(--r-sm);background:#eaf7f2;color:#075f47;font-size:13px}.auth-role-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:20px;padding:4px;border:1px solid var(--hairline);border-radius:var(--r-sm);background:var(--surface-2)}.auth-role-switch button{min-height:38px;border:0;border-radius:7px;background:transparent;color:var(--ink-2);cursor:pointer;font-size:12.5px;font-weight:650}.auth-role-switch button.is-active{background:var(--surface);color:#5035b7;box-shadow:0 3px 12px -8px #141c4080}.auth-role-switch button:focus-visible{outline:3px solid rgba(10,108,240,.28);outline-offset:1px}.auth-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-alternate{margin:17px 0 0;color:var(--ink-2);font-size:12.5px;text-align:center}.auth-alternate a{color:#0757c7;font-weight:700}.auth-alternate a:hover{text-decoration:underline}.auth-confirmation{text-align:center}.auth-confirmation>svg{color:#087353}.auth-confirmation .auth-eyebrow{margin-top:12px}.auth-confirmation .auth-sub strong{color:var(--ink)}.auth-confirmation .btn{justify-content:center}.auth-demo{margin-top:22px;padding-top:18px;border-top:1px solid var(--hairline-2);font-size:12.5px;color:var(--ink-3);line-height:1.6}.auth-demo .mono{font-family:var(--mono);color:var(--ink-2)}.topbar-auth{display:flex;align-items:center;gap:8px}.topbar-login,.topbar-register,.topbar-workspace{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--r-pill);padding:7px 14px;font-size:12.5px;font-weight:650}.topbar-login{color:var(--ink-2)}.topbar-login:hover{color:var(--ink);background:#ffffffb8}.topbar-register:hover{background:var(--accent-hi)}.topbar-workspace{color:#0757c7;background:#eaf2fe}.topbar-workspace:hover{background:#dce9fc}.landing-auth-cta,.landing-session{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:28px}.landing-auth-cta a,.landing-session a{min-height:43px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--r-pill);padding:9px 20px;font-size:13.5px;font-weight:700}.landing-login{border:1px solid #C8D0DD;background:var(--surface);color:var(--ink)}.landing-login:hover{background:var(--surface-2)}.landing-register,.landing-session a{border:1px solid var(--accent);background:var(--accent);color:#fff}.landing-register:hover,.landing-session a:hover{background:var(--accent-hi);border-color:var(--accent-hi)}.landing-session{width:fit-content;margin-right:auto;margin-left:auto;padding:5px 5px 5px 16px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:#ffffffbf;color:var(--ink-2);font-size:12.5px}.param-input{font-family:var(--mono);font-size:16px;font-weight:500;color:var(--ink);text-align:right;width:96px;border:1px solid var(--hairline);border-radius:var(--r-sm);padding:6px 10px;background:var(--surface);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.param-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0a6cf024}.param.missing .param-input{border-style:dashed;border-color:var(--warn-bd);color:var(--unverified)}.state-line{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-2)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--hairline);border-top-color:var(--accent);animation:spin .7s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.btn[disabled],.btn-primary[disabled]{opacity:.55;cursor:not-allowed}.err-banner{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--unverified);background:var(--warn-glass);border:1px solid var(--warn-bd);border-radius:var(--r);padding:14px 16px;margin-top:18px;line-height:1.5}.err-banner svg{flex:none;margin-top:1px}.checks{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}.checks li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--ink-2);line-height:1.5}.checks li svg{flex:none;margin-top:1px;color:var(--verified)}.checks li.fail svg{color:var(--unverified)}.check-law{font-family:var(--mono);font-size:12px;color:var(--ink-3);margin-right:4px}.full-center{min-height:70vh;display:grid;place-items:center;color:var(--ink-3)}.assign-list{display:flex;flex-direction:column;gap:12px;margin-top:28px}.assign-card{position:relative;display:flex;align-items:center;gap:16px;padding:16px 20px;border:1px solid var(--glass-edge);border-radius:var(--r);background:var(--glass-2);backdrop-filter:saturate(170%) blur(20px);-webkit-backdrop-filter:saturate(170%) blur(20px);overflow:hidden;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s ease}.assign-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px #ffffffeb}.assign-card:hover{transform:translateY(-3px);box-shadow:var(--lift)}.assign-card>*{position:relative}.assign-card-subj{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;width:56px;flex:none;color:var(--ink-3)}.assign-card.student .assign-card-subj,.assign-card-subj.ly{color:var(--ly)}.assign-card-subj.toan{color:var(--toan)}.assign-card-subj.hoa{color:var(--hoa)}.assign-card-body{flex:1;min-width:0}.assign-card-title{font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.assign-card-meta{font-size:13px;color:var(--ink-3);margin-top:2px}.assign-card-status{font-size:12.5px;font-weight:600;color:var(--ink-3);background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-pill);padding:4px 12px;flex:none}.assign-card-status.done{color:var(--verified);background:var(--ok-glass);border-color:var(--ok-bd)}.assign-card-go{color:var(--ink-3);flex:none;transition:transform .2s ease}.assign-card:hover .assign-card-go{transform:translate(4px);color:var(--accent)}.empty-card{display:flex;align-items:flex-start;gap:14px;margin-top:28px;padding:24px 26px;border:1px dashed var(--hairline);border-radius:var(--r);background:var(--surface);color:var(--ink-3)}.empty-card svg{color:var(--ink-3);flex:none;margin-top:2px}.empty-title{font-size:15px;font-weight:600;color:var(--ink-2)}.empty-sub{font-size:13.5px;margin-top:3px;line-height:1.5}.toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%);z-index:90;background:var(--ink);color:#fff;font-size:14px;font-weight:500;padding:12px 20px;border-radius:var(--r-pill);box-shadow:var(--lift);display:inline-flex;align-items:center;gap:9px}.toast svg{color:var(--verified)}.student-join-panel{display:grid;grid-template-columns:minmax(250px,1fr) minmax(330px,.9fr);align-items:center;gap:22px 34px;margin:22px 0 36px;padding:22px 24px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:#ffffffe6;box-shadow:0 16px 42px -36px #141c406b}.student-join-copy{display:flex;align-items:center;gap:13px}.student-join-icon{width:44px;height:44px;display:grid;place-items:center;flex:none;border-radius:13px;background:#eaf2fe;font-size:20px}.student-join-copy h2{color:var(--ink);font-size:17px}.student-join-copy p{margin:3px 0 0;color:var(--ink-2);font-size:12.5px;line-height:1.55}.student-join-form>label{display:block;margin-bottom:6px;color:var(--ink-2);font-size:11.5px;font-weight:700}.student-join-form>div{display:flex;gap:8px}.student-join-form input{min-width:0;min-height:43px;flex:1;padding:9px 13px;border:1px solid #C8D0DD;border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-family:var(--mono);font-size:15px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;outline:none}.student-join-form input::placeholder{color:#858e9e;opacity:1}.student-join-form input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0a6cf024}.student-join-form button{min-width:100px;min-height:43px;border:1px solid var(--accent);border-radius:var(--r-sm);padding:9px 15px;background:var(--accent);color:#fff;cursor:pointer;font-size:12.5px;font-weight:750}.student-join-form button:hover:not(:disabled){background:var(--accent-hi);border-color:var(--accent-hi)}.student-join-form button:disabled{opacity:.5;cursor:not-allowed}.student-join-form button:focus-visible{outline:3px solid rgba(10,108,240,.28);outline-offset:2px}.student-join-form small{display:block;margin-top:5px;color:var(--ink-2);font-size:10.5px}.student-join-message{grid-column:1 / -1;display:flex;align-items:center;gap:8px;margin-top:-7px;padding:9px 11px;border:1px solid;border-radius:var(--r-sm);font-size:12.5px}.student-join-message.error{border-color:#f2c7c2;background:#fff4f2;color:#a1261c}.student-join-message.success{border-color:#08735333;background:#eaf7f2;color:#075f47}.student-assign-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-top:8px}.student-assign-eyebrow{display:block;margin-bottom:2px;color:#5035b7;font-size:10.5px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.student-assign-heading h2,.student-section-heading h2{color:var(--ink);font-size:19px}.student-assign-heading>span,.student-section-heading>span{border:1px solid var(--hairline);border-radius:var(--r-pill);padding:4px 10px;background:var(--surface);color:var(--ink-2);font-size:11.5px;font-weight:650}.student-classes-section{margin:0 0 34px}.student-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:13px}.student-section-state{min-height:80px;padding:18px 4px}.student-classes-error,.student-classes-empty{display:flex;align-items:center;gap:8px;min-height:58px;padding:13px 15px;border-radius:var(--r-sm);font-size:12.5px}.student-classes-error{border:1px solid #F2C7C2;background:#fff4f2;color:#a1261c}.student-classes-empty{border:1px dashed #C8D0DD;background:#ffffff94;color:var(--ink-2)}.student-class-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:11px}.student-class-card{display:flex;align-items:center;gap:12px;min-width:0;padding:15px 16px;border:1px solid var(--hairline);border-radius:var(--r);background:#ffffffe6}.student-class-icon{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:11px;background:#eaf2fe;font-size:17px}.student-class-card>div{min-width:0;flex:1}.student-class-card h3{overflow:hidden;color:var(--ink);font-size:13.5px;text-overflow:ellipsis;white-space:nowrap}.student-class-card p{margin:2px 0 0;color:var(--ink-2);font-size:10.5px}.student-class-card code{margin-left:4px;color:#293143;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em}.student-class-status{display:inline-flex;align-items:center;gap:5px;flex:none;color:#087353;font-size:10.5px;font-weight:700}.student-shell{padding-top:28px}.student-main-content{flex:1;min-width:0}.student-page-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;margin-bottom:22px;padding:26px 28px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:#ffffffc2;box-shadow:0 16px 42px -38px #141c4080}.student-section-eyebrow{display:block;margin-bottom:5px;color:#5035b7;font-size:10.5px;font-weight:750;letter-spacing:.11em;text-transform:uppercase}.student-page-copy h1{margin:0;color:var(--ink);font-size:clamp(28px,4vw,40px);line-height:1.12;letter-spacing:-.035em}.student-page-copy p{max-width:620px;margin:9px 0 0;color:var(--ink-2);font-size:14px;line-height:1.6}.student-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(96px,1fr));gap:8px}.student-summary-item{min-width:0;display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--hairline-2);border-radius:var(--r-sm);background:var(--surface)}.student-summary-item>span{width:31px;height:31px;display:grid;place-items:center;flex:none;border-radius:9px;background:#eaf2fe;color:var(--accent)}.student-summary-item strong,.student-summary-item small{display:block}.student-summary-item strong{color:var(--ink);font-family:var(--mono);font-size:16px;line-height:1}.student-summary-item small{margin-top:4px;color:var(--ink-3);font-size:10px;white-space:nowrap}.student-join-panel-compact{margin:0 0 28px}.student-join-panel-compact .student-join-icon{color:#0757c7}.student-content-section{margin-top:28px}.student-content-section.is-compact{margin-bottom:0}.student-content-section .student-section-heading{margin-bottom:14px}.student-assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-assignment-card{position:relative;min-width:0;min-height:174px;display:flex;flex-direction:column;padding:18px;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--r);background:#ffffffe6;box-shadow:0 12px 30px -28px #141c4085;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.student-assignment-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,var(--accent),var(--violet))}.student-assignment-card:hover{transform:translateY(-2px);border-color:#b9c7da;box-shadow:var(--lift-sm)}.student-assignment-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.student-subject-chip,.student-completion-chip{display:inline-flex;align-items:center;gap:5px;border-radius:var(--r-pill);font-size:10.5px;font-weight:700}.student-subject-chip{color:var(--ink-2)}.student-subject-chip.ly{color:var(--ly)}.student-subject-chip.toan{color:var(--toan)}.student-subject-chip.hoa{color:var(--hoa)}.student-completion-chip{padding:4px 8px;border:1px solid var(--hairline);background:var(--surface-2);color:var(--ink-3);white-space:nowrap}.student-completion-chip.is-done{border-color:var(--ok-bd);background:var(--ok-glass);color:var(--verified)}.student-assignment-card h3{margin-top:14px;color:var(--ink);font-size:16.5px;line-height:1.35}.student-assignment-card>p{margin:5px 0 0;color:var(--ink-3);font-size:12px;line-height:1.5}.student-card-open{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:14px;color:var(--accent);font-size:12.5px;font-weight:700;white-space:nowrap}.student-empty-state{min-height:110px;display:flex;align-items:flex-start;gap:12px;padding:22px;border:1px dashed #C8D0DD;border-radius:var(--r);background:#ffffff94;color:var(--ink-3)}.student-empty-state strong{color:var(--ink-2)}.student-empty-state p{margin:4px 0 0;font-size:12.5px;line-height:1.55}.student-progress-overview{display:grid;grid-template-columns:auto minmax(220px,1fr);align-items:center;gap:28px;padding:22px 24px;border:1px solid var(--hairline);border-radius:var(--r);background:#ffffffdb}.student-progress-overview strong{display:block;font-family:var(--mono);font-size:34px;color:var(--accent)}.student-progress-overview p{margin:3px 0 0;color:var(--ink-2);font-size:12px}.student-progress-track{height:10px;overflow:hidden;border-radius:var(--r-pill);background:#e5eaf2}.student-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--violet))}.student-profile-grid{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:20px;align-items:start}.student-profile-grid .student-content-section{margin-top:0}.student-profile-card{display:flex;align-items:center;gap:16px;padding:24px;border:1px solid var(--hairline);border-radius:var(--r);background:#ffffffe6}.student-profile-avatar{width:58px;height:58px;display:grid;place-items:center;flex:none;border-radius:18px;background:linear-gradient(145deg,var(--accent),var(--violet));color:#fff;font-size:22px;font-weight:800}.student-profile-card h2{margin-top:2px;color:var(--ink);font-size:19px}.student-profile-card p{margin:4px 0 0;color:var(--ink-2);font-size:12.5px;overflow-wrap:anywhere}@media (max-width: 1040px){.student-page-hero{grid-template-columns:1fr;align-items:start}.student-summary-grid{width:100%}}@media (max-width: 700px){.student-shell{padding-top:4px}.student-page-hero{gap:20px;padding:22px 18px}.student-page-copy h1{font-size:29px}.student-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-summary-item{justify-content:center;padding:10px 7px}.student-summary-item>span{display:none}.student-summary-item div{text-align:center}.student-summary-item small{font-size:9px}.student-assignment-grid{grid-template-columns:1fr}.student-progress-overview{grid-template-columns:1fr;gap:16px}.student-profile-grid{grid-template-columns:1fr}}@media (max-width: 440px){.student-assignment-card-top{align-items:flex-start}.student-completion-chip{max-width:145px;white-space:normal;text-align:right}}.teacher-library{width:min(1120px,calc(100% - 48px));margin:0 auto;padding:30px 0 88px}.teacher-library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding:8px;border:1px solid var(--hairline);border-radius:var(--r);background:#ffffffa8;box-shadow:0 10px 28px -26px #141c4073}.teacher-library-tabs,.teacher-library-actions,.subject-filter,.saved-lab-actions,.assign-dialog-actions{display:flex;align-items:center;gap:10px}.teacher-library-tab{min-height:38px;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:var(--r-pill);padding:10px 17px;background:transparent;color:var(--ink-2);cursor:pointer;font-size:13.5px;font-weight:600;transition:color .2s ease,background .2s ease,box-shadow .2s ease}.teacher-library-tab:hover{color:var(--ink);background:var(--surface-2)}.teacher-library-tab.is-active{color:#5035b7;background:var(--surface);box-shadow:inset 0 0 0 1px #5035b72e}.teacher-action{min-height:39px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--r-sm);padding:8px 15px;font-size:13px;font-weight:650;line-height:1.2;cursor:pointer;transition:transform .15s ease,background .2s ease,border-color .2s ease}.teacher-action:hover{transform:translateY(-1px)}.teacher-action-primary{color:#fff;background:var(--accent)}.teacher-action-primary:hover{background:var(--accent-hi)}.teacher-action-secondary{color:var(--ink);background:var(--surface);border-color:var(--hairline)}.teacher-action-secondary:hover{background:var(--surface-2);border-color:#b9c3d3}.teacher-library-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:30px 0 20px}.teacher-library-heading h1{font-size:clamp(24px,3vw,32px);line-height:1.2}.teacher-library-heading p{max-width:600px;margin:7px 0 0;color:var(--ink-2);font-size:14px;line-height:1.6}.subject-filter{flex-wrap:wrap;justify-content:flex-end}.subject-filter-button{display:inline-flex;align-items:center;gap:7px;min-height:39px;padding:8px 16px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:#ffffffb8;color:var(--ink-2);cursor:pointer;font-size:13px;font-weight:650;transition:color .2s ease,background .2s ease,border-color .2s ease}.subject-filter-button:hover{color:var(--ink);border-color:#aeb9ca}.subject-filter-button.is-active{color:#5035b7;background:#f0ecff;border-color:#5035b759}.teacher-library-tab:focus-visible,.teacher-action:focus-visible,.subject-filter-button:focus-visible,.experiment-open:focus-visible,.card-action-primary:focus-visible,.card-action-secondary:focus-visible,.spec-run-button:focus-visible{outline:3px solid rgba(10,108,240,.28);outline-offset:2px}.experiment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.experiment-card{--subject-color: var(--accent);position:relative;min-height:168px;display:flex;flex-direction:column;padding:18px;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--r);background:#ffffffe6;box-shadow:0 10px 28px -24px #141c4066;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.experiment-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--subject-color)}.experiment-card:hover{transform:translateY(-3px);border-color:#c4cddb;box-shadow:var(--lift-sm)}.experiment-card.subject-toan{--subject-color: var(--toan)}.experiment-card.subject-ly{--subject-color: var(--ly)}.experiment-card.subject-hoa{--subject-color: var(--hoa)}.experiment-card-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink-2);font-size:12.5px}.experiment-subject{display:inline-flex;align-items:center;gap:6px;font-weight:600}.experiment-vetted,.saved-status{display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(8,115,83,.2);border-radius:var(--r-pill);padding:3px 9px;background:#eaf7f2;color:#087353;font-size:11px;font-weight:700;white-space:nowrap}.experiment-card h2{margin-top:13px;color:var(--ink);font-size:17px;line-height:1.45}.experiment-kind{margin-top:3px;color:var(--ink-2);font-size:11.5px}.experiment-open{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;white-space:nowrap;padding:9px 13px;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent);color:#fff;font-size:13px;font-weight:700;transition:color .2s ease,background .2s ease,border-color .2s ease}.experiment-open:hover{color:#fff;background:var(--accent-hi);border-color:var(--accent-hi)}.experiment-card-actions{display:flex;gap:8px;margin-top:18px}.experiment-card-actions>*{flex:1}.experiment-card-actions .experiment-open{margin-top:0}.experiment-assign{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #CDD5E2;border-radius:var(--r-sm);padding:9px 12px;background:var(--surface);color:#293143;cursor:pointer;font-size:12.5px;font-weight:700}.experiment-assign:hover{color:#0757c7;background:#eaf2fe;border-color:#a8c3ea}.experiment-assign:focus-visible{outline:3px solid rgba(10,108,240,.28);outline-offset:2px}.teacher-library-state,.teacher-library-empty{display:flex;align-items:center;justify-content:center;gap:10px;min-height:160px;color:var(--ink-2);font-size:14px}.teacher-library-empty{flex-direction:column;padding:34px;border:1px dashed #C8D0DD;border-radius:var(--r);background:#fff9;text-align:center}.teacher-library-empty strong{color:var(--ink);font-size:16px}.teacher-library-empty span{color:var(--ink-2)}.teacher-library-empty .teacher-action{margin-top:8px}.saved-lab-card{min-height:180px}.saved-status.draft{color:#76500b;border-color:#9a6b1238;background:#fcf5e9}.saved-lab-card time{color:var(--ink-2);font-size:11.5px}.saved-lab-actions{display:flex;gap:8px;margin-top:auto}.saved-lab-actions>*,.assign-dialog-actions>*{flex:1;min-width:0}.card-action-primary,.card-action-secondary,.card-action-danger{min-height:39px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-sm);padding:8px 14px;cursor:pointer;font-size:13px;font-weight:700;white-space:nowrap}.card-action-primary{border:1px solid var(--accent);background:var(--accent);color:#fff}.card-action-primary:hover{background:var(--accent-hi);border-color:var(--accent-hi)}.card-action-secondary{border:1px solid #C8D0DD;background:var(--surface);color:#293143}.card-action-secondary:hover{background:var(--surface-2)}.card-action-danger{border:1px solid #E8B6B0;background:#fff4f2;color:#a1261c}.card-action-danger:hover{border-color:#d9958d;background:#fde9e6}.card-action-primary:disabled,.card-action-secondary:disabled,.card-action-danger:disabled{opacity:.5;cursor:not-allowed}.delete-lab-warning{margin:0 0 18px;color:var(--ink-2);font-size:13px;line-height:1.6}.assign-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:grid;place-items:center;padding:24px;background:#16181f7a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.assign-dialog{width:min(460px,100%);padding:30px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);box-shadow:var(--lift);max-height:min(88vh,760px);overflow-y:auto;overflow-x:hidden}.assign-dialog h2{font-size:20px}.assign-dialog-lab{margin:6px 0 22px;color:var(--ink-2);font-size:14px}.assign-dialog-empty p{margin:0 0 16px;color:#76500b;font-size:14px}.assign-field{display:block;margin-bottom:16px}.assign-field>span{display:block;margin-bottom:6px;color:var(--ink-2);font-size:12.5px;font-weight:650}.assign-field select,.assign-field input{width:100%;min-height:43px;padding:9px 11px;border:1px solid #C8D0DD;border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:14px;outline:none}.assign-field select:focus,.assign-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0a6cf024}.assign-message{margin:0 0 14px;font-size:13px;font-weight:600}.assign-message.success{color:#087353}.assign-message.error{color:#b42318}.spec-lab-page{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:42px 0 90px}.spec-page-state{min-height:220px;display:flex;align-items:center;justify-content:center;gap:11px;color:var(--ink-2);font-size:14px}.spec-page-error,.spec-inline-error,.spec-blocked-message{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--warn-bd);border-radius:var(--r);background:var(--warn-glass);color:#76500b}.spec-page-error{max-width:620px;margin:40px auto;padding:22px}.spec-page-error strong{color:#513604}.spec-page-error p,.spec-blocked-message p{margin:3px 0 0;color:#684709;font-size:13.5px}.spec-inline-error{margin-bottom:18px;padding:12px 14px;font-size:13px}.spec-lab-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin-bottom:30px}.spec-lab-hero h1{max-width:760px;margin-top:8px;font-size:clamp(28px,4vw,42px);line-height:1.18}.spec-lab-hero p{max-width:660px;margin:10px 0 0;color:var(--ink-2);font-size:14px}.spec-subject{color:#0757c7;font-size:12px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.spec-subject-toan{color:#5035b7}.spec-subject-hoa{color:#087353}.spec-vetted,.spec-unvetted,.spec-result-ready,.spec-result-blocked{display:inline-flex;align-items:center;gap:7px;flex:none;border:1px solid rgba(8,115,83,.2);border-radius:var(--r-pill);padding:6px 11px;background:#eaf7f2;color:#087353;font-size:12px;font-weight:700}.spec-unvetted,.spec-result-blocked{border-color:#9a6b1240;background:#fcf5e9;color:#76500b}.spec-result-ready,.spec-result-blocked{padding:4px 9px;font-size:11px}.spec-lab-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px}.spec-preview-panel,.spec-controls-panel{overflow:hidden;border:1px solid var(--hairline);border-radius:var(--r-lg);background:#ffffffeb;box-shadow:0 16px 42px -36px #141c406b}.spec-controls-panel{padding-bottom:20px}.spec-panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 20px;border-bottom:1px solid var(--hairline-2)}.spec-panel-head h2{margin-top:1px;font-size:16px}.spec-panel-kicker{color:var(--ink-2);font-size:10px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.spec-preview-stage{min-height:430px;padding:18px;background:var(--board)}.spec-preview-stage .spec-page-state{min-height:394px}.spec-blocked-message{margin:28px;padding:18px}.spec-validation-summary{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--hairline-2);background:#f5fbf8;color:#075f47;font-size:12.5px}.spec-param-list{padding:4px 20px 10px}.spec-param{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--hairline-2)}.spec-param>span{min-width:0}.spec-param strong{display:block;color:var(--ink);font-size:12.5px;line-height:1.4}.spec-param small{display:block;margin-top:2px;color:var(--ink-2);font-size:10.5px}.spec-param input,.spec-param select{width:104px;min-height:37px;flex:none;padding:7px 9px;border:1px solid #C8D0DD;border-radius:8px;background:var(--surface);color:var(--ink);font-family:var(--mono);font-size:13px;text-align:right;outline:none}.spec-validation-summary.is-warning{border-top-color:#f0c8c2;background:#fff8f7;color:#9a3027}.spec-param select{text-align:left}.spec-param input[type=checkbox]{width:20px;min-height:20px;padding:0;accent-color:var(--accent)}.spec-param input:focus,.spec-param select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0a6cf024}.spec-run-button{width:calc(100% - 40px);min-height:42px;margin:8px 20px 0;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent);color:#fff;cursor:pointer;font-size:13px;font-weight:750}.spec-run-button:hover{background:var(--accent-hi);border-color:var(--accent-hi)}.spec-run-button:disabled{opacity:.55;cursor:wait}.spec-action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 20px 0}.spec-action-row .spec-run-button{width:100%;margin:0}.spec-action-row .spec-action-secondary{border-color:var(--hairline);background:var(--surface-2);color:var(--ink-2);box-shadow:none}.spec-action-row .spec-action-secondary:hover{border-color:#b8c3d3;background:#e5ecf7;color:var(--ink)}.spec-derived,.spec-theory{margin:20px 20px 0;padding-top:16px;border-top:1px solid var(--hairline-2)}.spec-derived h3,.spec-theory h3{margin-bottom:9px;color:var(--ink);font-size:12.5px}.spec-derived>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:5px 0;color:var(--ink-2);font-size:11px}.spec-derived strong{color:var(--ink);font-family:var(--mono)}.spec-theory p{margin:0;color:var(--ink-2);font-size:12px;line-height:1.65}.saved-param-list{padding:5px 20px 12px}.saved-param{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--hairline-2);color:var(--ink-2);font-size:11.5px}.saved-param strong{color:var(--ink);font-family:var(--mono);font-size:12px;text-align:right}.saved-lab-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:7px 20px 0;color:var(--ink-2);font-size:11.5px}.saved-lab-meta strong{color:var(--ink)}.spec-mentor-dock{margin:18px 20px 0;padding-top:16px;border-top:1px solid var(--hairline-2)}.spec-mentor-dock>.tutor-toggle-btn{width:100%;justify-content:flex-start;margin:0;border:1px solid #CCD6E5;border-radius:var(--r-sm);background:#f7f9fc;color:var(--ink-2);box-shadow:none}.spec-mentor-dock>.tutor-toggle-btn:hover{border-color:#afc1d9;background:#edf4fe;color:var(--accent)}.spec-mentor-dock .universal-tutor{margin:0;border-color:var(--hairline);box-shadow:none}.spec-mentor-dock .universal-tutor .chat-stream{max-height:310px;overflow-y:auto}.chemistry-library-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.chemistry-library-card{border:1px solid var(--hairline);border-radius:14px;padding:20px;background:var(--surface);box-shadow:var(--lift-sm)}.chemistry-library-card h2{margin:5px 0 12px;color:var(--ink);font-size:16px;line-height:1.45}.chemistry-library-card p,.chemistry-library-card li{color:var(--ink-2);font-size:12.5px;line-height:1.65}.chemistry-library-card ol,.chemistry-library-card ul{margin:0;padding-left:20px}.chemistry-library-safety{border-color:#f0c8c2;background:#fff8f7}.chemistry-library-formulas{font-family:var(--mono)}.chemistry-library-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.chemistry-library-tags span{border-radius:var(--r-pill);padding:5px 9px;background:var(--surface-2);color:var(--ink-2);font-size:10.5px}.chemistry-library-details>.cp-challenge-card{grid-column:1 / -1;margin-top:0}@media (max-width: 760px){.chemistry-library-details{grid-template-columns:1fr}.chemistry-library-details>.cp-challenge-card{grid-column:1}}.create-tutor{margin-top:24px}.create-tutor .universal-tutor{max-width:760px}@media (max-width: 860px){.teacher-library-toolbar,.teacher-library-heading{align-items:flex-start;flex-direction:column}.teacher-library-actions{width:100%}.teacher-library-actions>*{flex:1}.subject-filter{justify-content:flex-start}.spec-lab-layout{grid-template-columns:1fr}.spec-controls-panel{grid-row:1}}@media (max-width: 600px){.teacher-library,.spec-lab-page{width:min(100% - 28px,1180px)}.teacher-library-tabs{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.teacher-library-tab{min-width:0;justify-content:center;padding:9px 10px;font-size:12px;white-space:nowrap}.teacher-library-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-library-actions>*{width:100%}.experiment-grid{grid-template-columns:1fr}.spec-lab-page{padding-top:28px}.spec-lab-hero{flex-direction:column}.spec-preview-stage{min-height:300px;padding:10px}.assign-dialog{padding:24px 20px}.student-join-panel{grid-template-columns:1fr;padding:20px 16px}.student-join-form>div{flex-direction:column}.student-join-form button{width:100%}}.classes-page{width:min(900px,calc(100% - 48px));margin:0 auto;padding:42px 0 90px}.classes-hero{margin-bottom:26px}.classes-eyebrow{color:#5035b7;font-size:11px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.classes-hero h1{margin-top:7px;font-size:clamp(27px,4vw,38px);line-height:1.2}.classes-hero p{margin:7px 0 0;color:var(--ink-2);font-size:14px}.class-create-panel{padding:26px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:#ffffffeb;box-shadow:0 16px 42px -36px #141c406b}.class-create-heading{display:flex;align-items:center;gap:13px;margin-bottom:20px}.class-create-icon{width:40px;height:40px;display:grid;place-items:center;flex:none;border-radius:12px;background:#f0ecff;color:#5035b7;font-size:23px;font-weight:500}.class-create-heading h2{color:var(--ink);font-size:18px}.class-create-heading p{margin:2px 0 0;color:var(--ink-2);font-size:12.5px}.class-create-form>label{display:block;margin-bottom:7px;color:var(--ink-2);font-size:12.5px;font-weight:650}.class-create-row{display:flex;gap:10px}.class-create-row input{min-width:0;min-height:46px;flex:1;padding:10px 14px;border:1px solid #C8D0DD;border-radius:var(--r-sm);background:var(--surface);color:var(--ink);caret-color:var(--accent);font-size:14px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.class-create-row input::placeholder{color:#6f7889;opacity:1}.class-create-row input:hover{border-color:#aeb9ca}.class-create-row input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0a6cf024}.class-create-row button{min-width:120px;min-height:46px;border:1px solid var(--accent);border-radius:var(--r-sm);padding:10px 20px;background:var(--accent);color:#fff;cursor:pointer;font-size:13.5px;font-weight:750;transition:background .2s ease,border-color .2s ease,transform .12s ease}.class-create-row button:hover:not(:disabled){background:var(--accent-hi);border-color:var(--accent-hi)}.class-create-row button:active:not(:disabled){transform:translateY(1px)}.class-create-row button:disabled{opacity:.5;cursor:not-allowed}.class-create-row button:focus-visible,.copy-class-code:focus-visible{outline:3px solid rgba(10,108,240,.28);outline-offset:2px}.classes-error{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border:1px solid #F2C7C2;border-radius:var(--r-sm);background:#fff4f2;color:#a1261c;font-size:12.5px}.classes-error>span{width:18px;height:18px;display:grid;place-items:center;flex:none;border-radius:50%;background:#a1261c;color:#fff;font-size:11px;font-weight:800}.classes-list-section{margin-top:34px}.classes-list-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:15px}.classes-list-heading h2{margin-top:3px;color:var(--ink);font-size:20px}.classes-count{border:1px solid var(--hairline);border-radius:var(--r-pill);padding:4px 10px;background:var(--surface);color:var(--ink-2);font-size:11.5px;font-weight:650}.classes-state,.classes-empty{min-height:130px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px dashed #C8D0DD;border-radius:var(--r);background:#ffffff94;color:var(--ink-2);font-size:13.5px}.classes-empty{flex-direction:column;padding:24px;text-align:center}.classes-empty.compact{min-height:92px}.classes-empty>span{font-size:25px}.classes-empty strong{color:var(--ink);font-size:14.5px}.classes-empty p{margin:-5px 0 0;color:var(--ink-2);font-size:12.5px}.class-card-list{display:flex;flex-direction:column;gap:11px}.class-card{display:flex;align-items:center;gap:14px;padding:17px 18px;border:1px solid var(--hairline);border-radius:var(--r);background:#ffffffe6;box-shadow:0 10px 28px -26px #141c405c;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.class-card:hover{transform:translateY(-2px);border-color:#c4cddb;box-shadow:var(--lift-sm)}.class-card-icon{width:40px;height:40px;display:grid;place-items:center;flex:none;border-radius:11px;background:#eaf2fe;font-size:18px}.class-card-body{min-width:0;flex:1}.class-card h3{overflow:hidden;color:var(--ink);font-size:14.5px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.class-join-code{display:flex;align-items:baseline;gap:9px;margin-top:4px;color:var(--ink-2);font-size:11.5px}.class-join-code code{color:#293143;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.12em}.copy-class-code{min-height:38px;flex:none;border:1px solid #C8D0DD;border-radius:var(--r-sm);padding:8px 13px;background:var(--surface);color:#293143;cursor:pointer;font-size:12px;font-weight:650;transition:color .2s ease,background .2s ease,border-color .2s ease}.copy-class-code:hover{color:#0757c7;background:#eaf2fe;border-color:#a8c3ea}.copy-class-code.is-copied{color:#fff;background:#087353;border-color:#087353}.teacher-assignments-section{margin-top:36px}.teacher-assignment-list{display:flex;flex-direction:column;gap:10px}.teacher-assignment-card{display:flex;align-items:center;gap:13px;padding:15px 17px;border:1px solid var(--hairline);border-radius:var(--r);background:#ffffffe6}.teacher-assignment-icon{width:39px;height:39px;display:grid;place-items:center;flex:none;border-radius:11px;background:#f0ecff;font-size:17px}.teacher-assignment-body{min-width:0;flex:1}.teacher-assignment-body h3{overflow:hidden;color:var(--ink);font-size:13.5px;text-overflow:ellipsis;white-space:nowrap}.teacher-assignment-body p{margin:3px 0 0;color:var(--ink-2);font-size:11.5px}.teacher-assignment-card>a{flex:none;border:1px solid #C8D0DD;border-radius:var(--r-sm);padding:7px 11px;background:var(--surface);color:#0757c7;font-size:11.5px;font-weight:700}.teacher-assignment-card>a:hover{background:#eaf2fe;border-color:#a8c3ea}.classes-help{display:flex;align-items:flex-start;gap:10px;margin-top:28px;padding:14px 16px;border:1px solid rgba(80,53,183,.18);border-radius:var(--r-sm);background:#f7f4ff;color:#3d345f}.classes-help p{margin:0;font-size:12.5px;line-height:1.65}.classes-help strong{color:#33236e}@media (max-width: 600px){.classes-page{width:min(100% - 28px,900px);padding-top:28px}.class-create-panel{padding:20px 16px}.class-create-row{flex-direction:column}.class-create-row button{width:100%}.class-card{align-items:flex-start;flex-wrap:wrap}.class-card-body{width:calc(100% - 54px)}.copy-class-code{width:100%}.teacher-assignment-card{align-items:flex-start;flex-wrap:wrap}.teacher-assignment-card>a{width:100%;text-align:center}}@media (max-width: 700px){.auth-field-grid{grid-template-columns:1fr;gap:0}.topbar-auth{gap:4px}.topbar-login,.topbar-register,.topbar-workspace{padding:7px 10px;font-size:11.5px}.landing-session{flex-direction:column;padding:12px;border-radius:var(--r)}}@media (max-width: 480px){.topbar-workspace{display:none}.auth-card{padding:30px 22px 26px}.landing-auth-cta{align-items:stretch;flex-direction:column}}.lab-draft-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:24px}.lab-draft-card{display:flex;flex-direction:column;min-height:140px;padding:16px;border:2px solid #C8D0DD;border-radius:var(--r);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;transition:all .2s ease}.lab-draft-card:hover{border-color:#aeb9ca;background:#f9fafd}.lab-draft-card.is-selected{border-color:var(--accent);background:#f0f6ff}.lab-draft-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.lab-draft-card-title{font-size:15px;font-weight:600;color:var(--ink)}.lab-draft-card-badge{flex-shrink:0;font-size:16px}.lab-draft-card-description{margin:0 0 12px;font-size:12.5px;color:var(--ink-2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lab-draft-card-meta{display:flex;gap:12px;margin-top:auto;font-size:11.5px;color:var(--ink-2)}.lab-draft-card-alerts{display:flex;flex-direction:column;gap:4px;margin-top:8px}.lab-draft-card-alert{font-size:11px;padding:2px 6px;border-radius:4px}.lab-draft-card-alert-rejected{background:#fef3e6;color:#d97706}.lab-draft-card-alert-warning{background:#eff6ff;color:#0757c7}.lab-exercise-editor{max-width:900px;margin:0 auto;padding:24px}.lab-exercise-editor-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #E5E9EF}.lab-exercise-title-input{width:100%;font-size:20px;font-weight:600;padding:8px 0;border:none;border-bottom:1px solid transparent;background:transparent;color:var(--ink);outline:none}.lab-exercise-title-input:focus{border-bottom-color:var(--accent)}.lab-exercise-description-input{width:100%;margin-top:8px;font-size:14px;padding:6px 0;border:none;background:transparent;color:var(--ink-2);outline:none}.lab-exercise-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;white-space:nowrap}.lab-exercise-badge-warning{background:#fef3e6;color:#d97706}.lab-exercise-badge-info{background:#eff6ff;color:#0757c7}.lab-exercise-badge-small{padding:2px 6px;font-size:10px;margin-left:6px}.lab-exercise-alert{padding:12px 16px;border-radius:var(--r-sm);margin-bottom:16px}.lab-exercise-alert-error{background:#fef3e6;border:1px solid #FED7AA;color:#9a5c0d}.lab-exercise-alert-warning{background:#eff6ff;border:1px solid #BFDBFE;color:#1e429f}.lab-exercise-alert ul{margin:8px 0 0;padding-left:20px}.lab-exercise-step{padding:20px;margin-bottom:24px;border:1px solid #E5E9EF;border-radius:var(--r);background:var(--surface)}.lab-exercise-step-header{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--ink)}.lab-exercise-field{margin-bottom:16px}.lab-exercise-field>label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:600;color:var(--ink-2)}.lab-exercise-textarea{width:100%;min-height:60px;padding:10px 12px;border:1px solid #C8D0DD;border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:13px;font-family:inherit;resize:vertical}.lab-exercise-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0a6cf01a}.lab-exercise-params-table{display:flex;flex-direction:column;gap:6px;padding:10px;background:#f9fafd;border-radius:6px}.lab-exercise-param-row{display:flex;justify-content:space-between;padding:4px 8px;font-size:12px}.lab-exercise-param-key{font-weight:500;color:var(--ink-2)}.lab-exercise-param-value{font-family:JetBrains Mono,monospace;color:var(--ink)}.lab-exercise-details{margin:12px 0}.lab-exercise-details summary{cursor:pointer;font-size:12px;font-weight:500;color:#0757c7}.lab-exercise-details[open] summary{margin-bottom:8px}.vary-params-editor{display:flex;flex-direction:column;gap:12px;padding:12px;background:#f9fafd;border-radius:6px}.vary-param-row{display:flex;flex-direction:column;gap:8px}.vary-param-key{font-size:12px;font-weight:500;color:var(--ink-2)}.vary-param-values{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.vary-param-value-input{display:flex;align-items:center}.vary-param-value-input input{width:70px;padding:6px 8px;border:1px solid #C8D0DD;border-radius:4px;font-size:12px;text-align:center}.vary-param-value-input input:focus{outline:none;border-color:var(--accent)}.vary-param-remove{margin-left:4px;padding:2px 6px;border:none;background:#fee;color:#c33;border-radius:4px;cursor:pointer;font-size:14px}.vary-param-remove:hover{background:#fcc}.vary-param-add{padding:4px 10px;border:1px dashed #C8D0DD;background:transparent;color:#0757c7;border-radius:4px;font-size:11px;cursor:pointer}.vary-param-add:hover{border-color:#0757c7;background:#eff6ff}.lab-exercise-questions{margin-top:20px;padding-top:16px;border-top:1px solid #E5E9EF}.lab-exercise-questions h4{margin:0 0 12px;font-size:14px;font-weight:600}.lab-exercise-question{padding:14px;margin-bottom:12px;border:1px solid #E5E9EF;border-radius:8px;background:#fafbfd}.lab-exercise-question.is-invalid{border-color:#fed7aa;background:#fffbf7}.lab-exercise-question-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:13px;font-weight:500}.lab-exercise-validating{font-size:11px;color:#6f7889;font-style:italic}.lab-exercise-validation-error{display:block;margin-top:4px;font-size:11px;color:#d97706}.lab-exercise-validation-success{display:block;margin-top:4px;font-size:11px;color:#059669}.lab-exercise-expected-answer{padding:8px 12px;background:#f0f6ff;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:12px;color:#1e429f}.lab-exercise-actions{margin-top:24px;padding-top:16px;border-top:1px solid #E5E9EF}.lab-exercise-message{padding:10px 14px;border-radius:var(--r-sm);margin-bottom:16px;font-size:13px}.lab-exercise-message-success{background:#ecfdf5;color:#059669}.lab-exercise-message-error{background:#fef3e6;color:#d97706}.lab-exercise-buttons{display:flex;gap:12px}.lab-exercise-button{padding:10px 20px;border-radius:var(--r-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.lab-exercise-button:disabled{opacity:.6;cursor:not-allowed}.lab-exercise-button-primary{border:none;background:var(--accent);color:#fff}.lab-exercise-button-primary:hover:not(:disabled){background:#0757c7}.lab-exercise-button-secondary{border:1px solid #C8D0DD;background:#fff;color:var(--ink)}.lab-exercise-button-secondary:hover:not(:disabled){border-color:#aeb9ca;background:#f9fafd}.lab-exercise-help-text{margin-top:12px;font-size:12px;color:#6f7889}} .lab-ex-panel{padding:22px 20px 26px;display:flex;flex-direction:column;gap:20px}.lab-ex-pad{padding:20px}.lab-ex-desc{font-size:14px;line-height:1.65;color:var(--ink-2);margin:0}.lab-ex-picker{display:flex;align-items:center;gap:10px;font-size:13px}.lab-ex-picker select{padding:6px 10px;border:1px solid var(--hairline);border-radius:6px;background:var(--surface)}.lab-ex-mode{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--hairline-2);padding:12px 16px;border-radius:var(--r-sm)}.lab-ex-mode-label{font-size:12.5px;font-weight:650;color:var(--ink-2)}.lab-ex-mode-seg{display:inline-flex;gap:3px;padding:3px;background:var(--surface);border:1px solid var(--hairline);border-radius:999px}.lab-ex-mode-btn{padding:7px 14px;font-size:12.5px;font-weight:650;font-family:inherit;border:0;border-radius:999px;background:transparent;color:var(--ink-2);cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.lab-ex-mode-btn:hover{color:var(--ink);background:var(--surface-2)}.lab-ex-mode-btn.on{background:var(--accent);color:#fff;box-shadow:0 6px 16px -8px #0a6cf08c}.lab-ex-mode-btn.on:hover{background:var(--accent);color:#fff}.lab-ex-mode-btn:focus-visible{outline:3px solid rgba(10,108,240,.28);outline-offset:1px}.lab-ex-mode-note{font-size:12.5px;line-height:1.5;color:var(--ink-3);flex-basis:100%}.lab-ex-step{border:1px solid var(--hairline);border-radius:14px;padding:18px 18px 20px;display:flex;flex-direction:column;gap:14px;background:var(--surface);box-shadow:0 10px 30px -26px #141c4059}.lab-ex-step-title{margin:0;display:flex;align-items:flex-start;gap:10px;font-size:14.5px;font-weight:700;line-height:1.5;letter-spacing:-.01em}.lab-ex-step-chip{flex:none;display:inline-flex;align-items:center;height:22px;margin-top:0;padding:0 10px;border-radius:999px;background:#eaf2fe;color:#0757c7;font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.lab-ex-observe{margin:0;font-size:13px;line-height:1.6;color:var(--ink-2)}.lab-ex-fixed{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}.lab-ex-fixed-label{font-weight:650;letter-spacing:.02em;margin-right:2px}.lab-ex-fixed-chip{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--hairline-2);border-radius:6px;padding:3px 8px}.lab-ex-table-wrap{border:1px solid var(--hairline);border-radius:12px;overflow:hidden;overflow-x:auto;background:var(--surface)}.lab-ex-table{width:100%;border-collapse:collapse;font-size:13px}.lab-ex-table th{padding:11px 14px;text-align:left;white-space:nowrap;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);border-bottom:1px solid var(--hairline)}.lab-ex-table td{padding:10px 14px;border-bottom:1px solid var(--hairline-2);vertical-align:middle}.lab-ex-table tbody tr:last-child td{border-bottom:0}.lab-ex-table tbody tr:hover td{background:#0a6cf009}.lab-ex-cell-param{font-family:var(--mono);font-size:12.5px;font-weight:650;white-space:nowrap;color:var(--ink)}.lab-ex-cell-input{display:inline-flex;gap:8px;align-items:center}.lab-ex-cell-input input{width:118px;text-align:right;padding:7px 10px;border:1px solid var(--hairline-2);border-radius:8px;font-family:var(--mono);font-size:12.5px;color:var(--ink);background:var(--surface);transition:border-color .18s ease,box-shadow .18s ease}.lab-ex-cell-input input::placeholder{font-family:inherit;font-size:11px;color:var(--ink-3)}.lab-ex-cell-input input:hover{border-color:var(--hairline)}.lab-ex-cell-input input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0a6cf024}.lab-ex-run-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;padding:5px 13px;border-radius:999px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;border:1px solid rgba(10,108,240,.35);background:#eaf2fe;color:#0757c7;transition:background .18s ease,color .18s ease,border-color .18s ease}.lab-ex-run-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.lab-ex-run-btn:focus-visible{outline:3px solid rgba(10,108,240,.28);outline-offset:1px}.lab-ex-run-btn:disabled{opacity:.55;cursor:not-allowed}.lab-ex-questions{display:flex;flex-direction:column;gap:16px}.lab-ex-question{display:flex;flex-direction:column;gap:8px}.lab-ex-question-prompt{font-size:13.5px;line-height:1.55;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lab-ex-q-num{flex:none;font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:#0757c7;background:#eaf2fe;border-radius:999px;padding:3px 9px;white-space:nowrap}.lab-ex-q-text{flex:1 1 auto;min-width:0}.lab-ex-question input,.lab-ex-question textarea{padding:10px 12px;border:1px solid var(--hairline);border-radius:10px;font-family:inherit;font-size:13.5px;line-height:1.5;color:var(--ink);background:var(--surface);transition:border-color .18s ease,box-shadow .18s ease}.lab-ex-question textarea{resize:vertical}.lab-ex-question input::placeholder,.lab-ex-question textarea::placeholder{color:var(--ink-3)}.lab-ex-question input:focus,.lab-ex-question textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0a6cf024}.lab-ex-question input:disabled,.lab-ex-question textarea:disabled{background:var(--surface-2);color:var(--ink-3);cursor:not-allowed}.lab-ex-grade{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}.lab-ex-grade.ok{background:#0e9e731f;color:#087353}.lab-ex-grade.bad{background:#c6303e1a;color:#c6303e}.lab-ex-grade.partial{background:#9a6b121f;color:#9a6b12}.lab-ex-grade.review{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--hairline-2)}.lab-ex-feedback{display:block;font-size:12.5px;line-height:1.55;color:var(--ink-2);background:var(--surface-2);border-left:3px solid var(--hairline);border-radius:0 8px 8px 0;padding:8px 12px}.lab-ex-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--hairline-2);padding-top:18px}.lab-ex-score{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:linear-gradient(135deg,#eaf2fe,#f5f9ff);border:1px solid rgba(10,108,240,.22);border-radius:14px;padding:16px 20px}.lab-ex-score-value{font-size:32px;font-weight:800;line-height:1;letter-spacing:-.03em;color:#0757c7;font-variant-numeric:tabular-nums}.lab-ex-score-meta{display:flex;flex-direction:column;gap:4px;flex:1;min-width:180px}.lab-ex-score-label{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.lab-ex-score-note{color:var(--ink-2);font-size:12.5px;line-height:1.5}.lab-ex-ai{border:1px solid rgba(10,108,240,.18);border-radius:14px;padding:16px 18px;background:linear-gradient(180deg,#0a6cf00e,#0a6cf004)}.lab-ex-ai h5{margin:0 0 10px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:750;letter-spacing:.01em;color:#0757c7}.lab-ex-ai-body{white-space:pre-wrap;font-size:13.5px;line-height:1.65;color:var(--ink)}.class-card-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}.assign-class-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.classes-heading-actions{display:flex;align-items:center;gap:12px}.lab-ex-attach{display:flex;flex-direction:column;gap:6px;background:var(--surface-2);border-radius:8px;padding:12px 14px}.lab-ex-attach-title{font-size:13px;font-weight:700}.lab-ex-attach-list{margin:0;padding-left:4px;list-style:none;font-size:13px;color:var(--verified, #0E9E73)}.lab-ex-attach-advanced{margin:4px 0 16px;min-width:0}.lab-ex-attach-advanced summary{cursor:pointer;font-size:13px;color:var(--ink-2);padding:6px 0;-webkit-user-select:none;user-select:none}.lab-ex-attach-advanced[open] summary{margin-bottom:8px}.lab-ex-attach-advanced>div{max-width:100%}.lab-ex-attach-advanced input[type=number]{max-width:84px;min-width:0}.lab-ex-attach-item{display:flex;gap:8px;align-items:center;font-size:13px;cursor:pointer}.lab-ex-attach-item input{accent-color:var(--accent)}.lab-ex-list{display:flex;flex-direction:column;gap:12px}.lab-ex-list-item{position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--hairline);border-radius:14px;background:var(--surface);cursor:pointer;text-align:left;font-family:inherit;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.lab-ex-list-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);opacity:0;transition:opacity .18s ease}.lab-ex-list-item:hover{border-color:#0a6cf073;box-shadow:var(--lift-sm);transform:translateY(-1px)}.lab-ex-list-item:hover:before{opacity:1}.lab-ex-list-item:focus-visible{outline:3px solid rgba(10,108,240,.28);outline-offset:2px}.lab-ex-list-index{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eaf2fe;color:#0757c7;font-weight:750;font-size:13.5px}.lab-ex-list-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.lab-ex-list-title{font-size:14.5px;font-weight:700;letter-spacing:-.01em}.lab-ex-list-desc{font-size:12.5px;line-height:1.5;color:var(--ink-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lab-ex-list-status{flex:none;font-size:12px;font-weight:700;white-space:nowrap;color:#0757c7;background:#eaf2fe;border-radius:999px;padding:5px 12px}.lab-ex-list-status.started{color:#9a6b12;background:#9a6b121a}.lab-ex-detail-head{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.lab-ex-detail-title{margin:0;font-size:17px;font-weight:750;letter-spacing:-.015em;line-height:1.35}.lab-ex-back{font-size:12.5px;padding:6px 12px}.lab-ex-list-intro{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;border:1px solid rgba(10,108,240,.18);border-radius:14px;background:linear-gradient(135deg,#0a6cf012,#0a6cf005)}.lab-ex-list-intro-icon{flex:none;width:40px;height:40px;display:grid;place-items:center;font-size:20px;border-radius:12px;background:var(--surface);border:1px solid rgba(10,108,240,.18);box-shadow:var(--lift-sm)}.lab-ex-list-intro-body{display:flex;flex-direction:column;gap:4px;min-width:0}.lab-ex-list-intro-body>strong{font-size:14.5px;font-weight:750;color:var(--ink);letter-spacing:-.01em}.lab-ex-list-intro-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin:0 2px;border-radius:999px;background:var(--accent);color:#fff;font-size:12.5px;font-weight:750;vertical-align:2px}.lab-ex-list-intro-body>span{font-size:13px;line-height:1.6;color:var(--ink-2)}main.app.workspace-fluid{max-width:min(1720px,100%)}.workspace-stack{display:flex;flex-direction:column;gap:16px;margin-top:14px}.sim-board .labview-synced{display:block}.sim-board .labview-plot-section{display:none}.sim-board .lab-stage svg[role=img]{width:auto;max-width:100%;max-height:58vh;margin-inline:auto}.param-bar{border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface);padding:12px 18px;display:flex;flex-direction:column;gap:12px}.param-bar-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.param-bar-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}.param-chip-row{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.param-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--hairline);border-radius:999px;background:var(--surface-2);font-size:12.5px;white-space:nowrap}.param-chip-k{color:var(--ink-3)}.param-chip-v{font-family:var(--mono);font-weight:650;color:var(--ink)}.param-chip.locked{opacity:.72}.param-bar-actions{display:flex;gap:8px;flex:none}.param-bar-editor{border-top:1px solid var(--hairline-2);padding-top:10px}.param-editor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 28px}.series-toggle-row{display:flex;gap:16px;flex-wrap:wrap;padding:12px 20px 0}.series-toggle{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none}.series-toggle input{accent-color:var(--accent)}.workspace-bottom-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media (max-width: 900px){.workspace-bottom-row{grid-template-columns:1fr}}.tutor-fab{position:fixed;right:26px;bottom:26px;z-index:90;display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:700;font-size:13.5px;cursor:pointer;box-shadow:0 10px 30px #0a6cf059;transition:transform .15s ease,background .2s ease}.tutor-fab:hover{background:var(--accent-hi);transform:translateY(-1px)}.tutor-dock-floating{position:fixed;right:24px;bottom:24px;z-index:95;width:min(380px,calc(100vw - 32px));max-height:min(72vh,640px);overflow:auto;border-radius:var(--r-lg);box-shadow:var(--lift);background:var(--surface)}.tc-page{align-items:flex-start}.tc-main{flex:1;min-width:0}.tc-object-head{padding:18px 0 4px}.tc-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}.tc-head-copy{min-width:0}.tc-title{font-size:clamp(28px,3.2vw,38px);line-height:1.08;margin-top:8px;letter-spacing:-.03em}.tc-lede{margin-top:10px;font-size:15.5px;line-height:1.55;max-width:72ch}.tc-steps{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:4px}.tc-step{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:12.5px;font-weight:600;color:var(--ink-3);padding:6px 13px 6px 7px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--glass-2);backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px)}.tc-step-num{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;font-family:var(--mono);font-size:11px;font-weight:600;background:var(--surface-2);color:var(--ink-2)}.tc-step[data-on=true]{color:var(--accent);border-color:#0a6cf052}.tc-step[data-on=true] .tc-step-num{background:var(--accent);color:#fff}.tc-step[data-done=true]{color:var(--verified);border-color:var(--ok-bd)}.tc-step[data-done=true] .tc-step-num{background:var(--ok-glass);color:var(--verified)}.tc-step-sep{width:16px;height:1px;background:var(--hairline);flex:none}.tc-stack{margin-top:16px;gap:20px}.tc-compose-row{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:20px;align-items:start}@media (max-width: 960px){.tc-compose-row{grid-template-columns:minmax(0,1fr)}}.tc-chat.composer{margin-top:0}.tc-rail{display:flex;flex-direction:column;gap:14px;min-width:0}.tc-rail-card{padding:16px 18px 14px}.tc-rail-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:12px}.tc-rail-hint{font-size:12.5px;color:var(--ink-3);line-height:1.5;margin:10px 0 0}.tc-subject-seg{flex-wrap:wrap}.tc-rail .subject-opt{font-size:13px;padding:6px 13px}.tc-example-list{border-top:none;margin:-4px 0 0}.tc-rail .example-row{padding:11px 2px;gap:10px}.tc-rail .example-row:last-child{border-bottom:none;padding-bottom:4px}.tc-rail .example-row:hover{padding-left:8px}.tc-rail .ex-subj{width:36px}.tc-rail .ex-text{font-size:13.5px;line-height:1.45}.tc-catalog-btn{justify-content:center}.tc-confirm-head{flex-wrap:wrap;row-gap:10px}.tc-confirm-note{display:block;margin-top:3px}.tc-confirm-body{display:flex;flex-direction:column;gap:18px}.tc-badge-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tc-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;white-space:nowrap;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface);font-size:12.5px}.tc-chip-k{color:var(--ink-3)}.tc-chip-v{font-weight:650;color:var(--ink)}.tc-chip-v.mono{font-family:var(--mono)}.tc-model-name{font-size:21px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.tc-model-sub{font-size:13.5px;font-weight:300;color:var(--ink-2);line-height:1.55;max-width:78ch;margin:5px 0 0}.tc-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:4px}.tc-param-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 28px}.tc-param{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--hairline-2)}.tc-param-name{font-size:13.5px;color:var(--ink-2);min-width:0}.tc-param-name .sym{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);margin-left:6px}.tc-param-ctl{display:inline-flex;align-items:center;gap:6px;flex:none}.tc-param-ctl .u{font-size:11.5px;color:var(--ink-3);min-width:2ch}.tc-param.missing .param-input{border-style:dashed;border-color:var(--warn-bd);color:var(--unverified)}.tc-confirm .param-fill{margin-top:12px}.tc-sources>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink-2)}.tc-sources>summary::-webkit-details-marker{display:none}.tc-sources>summary:before{content:"›";font-weight:700;color:var(--ink-3);transition:transform .2s ease}.tc-sources[open]>summary:before{transform:rotate(90deg)}.tc-sources>summary:hover{color:var(--ink)}.tc-sources .sources{margin-top:2px}.tc-preview{display:flex;flex-direction:column}.tc-preview-board .board-head{flex-wrap:wrap;row-gap:8px}.tc-stage{padding:20px 22px;background:var(--board)}.tc-stage svg[role=img]{display:block;width:auto;max-width:100%;height:auto;margin-inline:auto}.tc-pulse{margin-top:14px;padding:14px 22px;gap:26px}.tc-pulse .pulse-item{gap:2px}.tc-pulse .pulse-label{font-size:11px}.tc-pulse .pulse-value{font-size:15px}.tc-pulse .pulse-sep{height:26px}.tc-fignote{font-size:13px;font-weight:300;color:var(--ink-2);line-height:1.55;margin:12px 2px 0}.tc-fignote strong{font-weight:600;color:var(--ink)}.tc-preview .verify-line{margin-top:18px}.tc-checks{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.tc-checks li{display:inline-flex;align-items:center;gap:7px;max-width:100%;font-size:12.5px;color:var(--ink-2);line-height:1.45;border:1px solid var(--ok-bd);border-radius:var(--r-pill);padding:6px 13px;background:var(--ok-glass)}.tc-checks li svg{flex:none;color:var(--verified)}.tc-checks li.fail{border-color:var(--warn-bd);background:var(--warn-glass)}.tc-checks li.fail svg{color:var(--unverified)}.tc-checks .check-law{font-family:var(--mono);font-size:11.5px;color:var(--ink);margin-right:6px}@media (max-width: 620px){.tc-head-row{align-items:flex-start}.tc-steps{padding-bottom:0}.tc-pulse{gap:16px}.tc-pulse .pulse-sep{display:none}}.engage-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:18px 0 20px}.engage-stat{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--lift-sm)}.engage-stat-value{font-size:24px;font-weight:650;color:var(--ink)}.engage-stat-label{font-size:12px;color:var(--ink-3)}.engage-table{width:100%;border-collapse:collapse;font-size:13.5px}.engage-table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--hairline);white-space:nowrap}.engage-table td{padding:9px 10px;border-bottom:1px solid var(--hairline-2)}.engage-table tbody tr:hover{background:#0a6cf009}.engage-table .engage-name{font-weight:600;color:var(--ink)}.engage-table .engage-when{color:var(--ink-3);font-size:12.5px}.grading-list{display:flex;flex-direction:column;gap:14px;margin-top:16px}.grading-flag{margin-left:10px;font-size:11.5px;padding:3px 9px;border-radius:999px;font-weight:600}.grading-flag.pending{background:#b080181f;color:#7a5a10;border:1px solid rgba(176,128,24,.3)}.grading-flag.done{background:#0e9e731a;color:#0b7a59;border:1px solid rgba(14,158,115,.28)}.grading-answers summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-2);padding:4px 0}.grading-answer{padding:10px 0;border-bottom:1px solid var(--hairline-2)}.grading-q{font-size:13px;color:var(--ink-2);margin-bottom:4px}.grading-a{font-size:13.5px;color:var(--ink)}.grading-machine{font-size:12.5px;color:var(--ink-3);margin-top:4px;font-style:italic}.grading-actions{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-top:14px}.grading-actions label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--ink-3);font-weight:600}.grading-actions input{width:90px;padding:7px 10px;border:1px solid var(--hairline);border-radius:8px;font-family:var(--mono);font-size:13.5px}.grading-feedback{flex:1;min-width:240px}.grading-actions textarea{width:100%;padding:8px 10px;border:1px solid var(--hairline);border-radius:8px;font-size:13.5px;resize:vertical;font-family:inherit}.grading-index-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;text-align:left;cursor:pointer;border:1px solid var(--hairline);background:var(--surface);transition:box-shadow .15s ease,transform .15s ease}.grading-index-row:hover{box-shadow:var(--lift);transform:translateY(-1px)}.grading-index-main{display:flex;flex-direction:column;gap:4px;min-width:0}.grading-index-title{font-weight:650;font-size:15px;color:var(--ink)}.grading-index-spec{font-size:11.5px;color:var(--ink-3)}.grading-index-meta{display:flex;align-items:center;gap:12px;flex-shrink:0;font-size:13px;color:var(--ink-2)}:root{--bg: #f4f7fb;--surface: #ffffff;--surface-2: #eef4ff;--ink: #172033;--ink-2: #4c5870;--ink-3: #748096;--hairline: #d8e0ec;--hairline-2: #e8edf4;--accent: #1769e8;--accent-hi: #0f58c8;--ly: #1769e8;--hoa: #078b68;--toan: #7253d6;--r-sm: 10px;--r: 16px;--r-lg: 22px;--lift-sm: 0 14px 32px -24px rgba(25, 44, 78, .45);--lift: 0 24px 60px -34px rgba(25, 44, 78, .5)}html{scroll-behavior:smooth}body{min-width:320px;overflow-x:hidden;background:radial-gradient(circle at 8% 12%,rgba(255,194,71,.17),transparent 280px),radial-gradient(circle at 92% 18%,rgba(122,83,214,.15),transparent 340px),radial-gradient(circle at 68% 44%,rgba(13,173,132,.1),transparent 360px),linear-gradient(180deg,#f3f7ff,#f8fbff 42%,#f4f7fb)}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:where(a,button,input,select,textarea):focus-visible{outline:3px solid rgba(23,105,232,.28);outline-offset:2px}.aurora{opacity:.5}.glow-floor{opacity:.35}.topbar{background:#ffffffeb;border-bottom-color:#dfe6f0;box-shadow:0 3px 18px #1f34550a}.topbar-in{max-width:1240px;min-height:68px;padding:10px 32px;gap:18px}.topbar-leading,.topbar-auth{display:flex;align-items:center;gap:10px;min-width:0}.brand{min-width:0;gap:10px;border-radius:12px;padding:3px}.brand:hover .brand-name{color:var(--accent)}.brand-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#1478ff 12%,#6946dc);box-shadow:0 8px 18px -10px #1769e8cc}.brand-copy,.brand-name,.brand-sub{display:block;min-width:0}.brand-name{overflow:hidden;color:var(--ink);font-size:15px;text-overflow:ellipsis;white-space:nowrap;transition:color .2s ease}.brand-sub{overflow:hidden;max-width:440px;margin-top:2px;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.back-link{flex:none;min-height:38px;margin:0;border:1px solid var(--hairline);background:#fff;color:var(--ink-2);padding:7px 11px}.back-link:hover{background:var(--surface-2);color:var(--accent)}.topbar-workspace,.topbar-login,.topbar-register,.lib-link{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;padding:8px 13px;font-size:12.5px;font-weight:700}.topbar-workspace{background:#edf5ff;color:#075acb}.topbar-register{background:var(--accent);color:#fff}.topbar-login,.lib-link{border:1px solid var(--hairline);background:#fff;color:var(--ink-2)}.lib-link:hover,.topbar-login:hover{border-color:#b9c6d8;background:#f7f9fc;color:var(--ink)}.btn,.teacher-action,.card-action-primary,.card-action-secondary,.experiment-open,.experiment-assign,.spec-run-button{border-radius:10px}.btn-primary,.teacher-action-primary,.card-action-primary,.spec-run-button{background:var(--accent);border-color:var(--accent);box-shadow:0 7px 16px -12px #1769e8e6}.btn-primary:hover,.teacher-action-primary:hover,.card-action-primary:hover,.spec-run-button:hover{background:var(--accent-hi);border-color:var(--accent-hi)}:where(.auth-card,.composer,.confirm-card,.assign-banner,.student-page-hero,.student-join-panel,.student-assignment-card,.experiment-card,.spec-preview-panel,.spec-controls-panel,.classes-create-card,.classes-code-card,.class-card,.worksheet-section,.universal-tutor){border-color:var(--hairline);background:#fffffff5;box-shadow:var(--lift-sm)}.landing{position:relative;max-width:1160px;padding:0 32px 84px}.landing:before,.landing:after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}.landing:before{width:150px;height:150px;left:-88px;top:290px;background:#ffc4442e}.landing:after{width:110px;height:110px;right:-54px;top:520px;background:#08a67e29}.landing-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(430px,1.08fr);align-items:center;gap:clamp(34px,5vw,70px);padding:68px 0 34px;text-align:left}.landing-hero-copy{min-width:0}.landing-eyebrow{border:1px solid #f1c85d;border-radius:999px;padding:6px 12px;background:linear-gradient(135deg,#fff6c9,#ffe59b);color:#694700;letter-spacing:.08em;box-shadow:0 8px 20px -16px #7a520099}.landing-eyebrow:before,.landing-eyebrow:after{display:none}.landing-title{max-width:720px;margin:22px 0 0;color:#111a2c;font-size:clamp(42px,5vw,62px);line-height:1.04}.landing-title span{color:var(--accent);background:linear-gradient(92deg,#126cf0,#6f48db 56%,#0b9b75 108%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.landing-lede{max-width:590px;margin:24px 0 0;color:var(--ink-2);font-size:clamp(15px,1.6vw,18px);font-weight:400}.landing-auth-cta{justify-content:flex-start;margin-top:28px}.landing-auth-cta a{min-height:46px;border-radius:11px;padding:11px 20px}.landing-auth-cta .landing-register{order:-1;background:linear-gradient(135deg,#176ee9,#6750d8);border-color:transparent;box-shadow:0 13px 25px -16px #4947cacc}.landing-auth-cta .landing-register:hover{background:linear-gradient(135deg,#0f5fcf,#583dc7);border-color:transparent}.landing-hero-visual{position:relative;overflow:hidden;margin:0;border:1px solid #d5e3f5;border-radius:28px;background:#edf5ff;box-shadow:18px 20px 0 -8px #704cda1f,-18px -16px 0 -10px #ffc3452b,0 28px 70px -38px #1769e88c;transform:rotate(1deg)}.landing-hero-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 0 1px #ffffff8c,inset 0 -80px 100px -92px #08326e59}.landing-hero-visual img{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover}.landing-hero-visual figcaption{position:absolute;z-index:2;left:18px;bottom:16px;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.85);border-radius:999px;padding:7px 11px;background:#ffffffdb;color:#25405f;box-shadow:0 8px 20px -14px #112c4e99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:10.5px;font-weight:800}.hero-visual-dot{width:7px;height:7px;border-radius:50%;background:#13a37c;box-shadow:0 0 0 4px #13a37c21}.subject-discovery{position:relative;overflow:hidden;margin-top:36px;border:1px solid var(--hairline);border-radius:24px;padding:27px 24px 24px;background:#ffffffeb;box-shadow:var(--lift)}.subject-discovery:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#1475f4 0,#1475f4 33%,#754edb 33%,#754edb 66%,#09a17a 66%)}.subject-discovery-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.subject-discovery-heading>div>span{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.subject-discovery-heading h2{margin-top:4px;font-size:clamp(21px,3vw,28px)}.subject-count{color:var(--ink-3);font-size:12px}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.subject-tile{display:flex;align-items:center;gap:13px;min-height:88px;border-radius:15px;padding:15px;background:linear-gradient(135deg,#1675f3,#0a58c4);color:#fff;box-shadow:0 14px 24px -20px #0a58c4e6;transition:transform .2s ease,box-shadow .2s ease}.subject-tile:hover{transform:translateY(-3px) rotate(-.3deg);box-shadow:0 18px 28px -19px #0a58c4bf}.subject-tile.math{background:linear-gradient(135deg,#8059e7,#5837bd);color:#fff}.subject-tile.chemistry{background:linear-gradient(135deg,#10ad83,#05785c);color:#fff}.subject-tile-icon{width:44px;height:44px;display:grid;flex:none;place-items:center;border-radius:13px;background:#ffffff2e;border:1px solid rgba(255,255,255,.3);color:#fff;font-size:23px;font-weight:800}.subject-tile h3{font-size:15px}.subject-tile p{margin:2px 0 0;color:#ffffffd6;font-size:11px;line-height:1.45}.chooser{gap:16px;margin-top:20px}.choose-card{min-height:356px;border:1px solid var(--hairline);border-radius:20px;padding:28px;background:#fffffff0;box-shadow:var(--lift-sm)}.choose-card:hover{transform:translateY(-3px);border-color:#b8c8dd;box-shadow:var(--lift)}.choose-card.teacher{border-top:5px solid #7650dc;background:linear-gradient(155deg,#fff 55%,#f2edff 130%)}.choose-card.student{border-top:5px solid #08a07a;background:linear-gradient(155deg,#fff 55%,#e8faf4 130%)}.choose-step{display:inline-flex;border-radius:999px;padding:5px 10px;background:linear-gradient(135deg,#7c58e4,#5d3bc3);color:#fff;font-size:11px;font-weight:800}.choose-card.student .choose-step{background:linear-gradient(135deg,#10ad83,#067a5d);color:#fff}.choose-title{margin-top:15px;font-size:22px}.choose-desc{font-size:14px;font-weight:400}.choose-list{margin-top:18px;gap:9px}.choose-list li{font-size:12.5px}.choose-go{margin-top:auto;padding-top:22px}.choose-card.teacher .choose-go{color:#6340c5}.choose-card.student .choose-go{color:#067e60}.landing-note{margin-top:26px}.app{max-width:1240px;padding:30px 32px 100px}.student-home-layout{gap:28px}.student-sidebar{top:92px;width:210px}.sidebar-nav{border:1px solid var(--hairline);border-radius:16px;padding:7px;background:#fff;box-shadow:var(--lift-sm);-webkit-backdrop-filter:none;backdrop-filter:none}.sidebar-item{min-height:44px;border-radius:10px;padding:10px 12px}.sidebar-item.active{position:relative;background:#edf5ff;color:#075acb;box-shadow:none}.sidebar-item.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--accent)}.student-workspace-toolbar{margin-top:0}.student-workspace-tabs .teacher-library-tab.is-active{color:#075acb;background:#edf5ff}.student-workspace-actions .teacher-action-secondary.is-active{color:#075acb;border-color:#b8d3f7;background:#edf5ff}.student-workspace-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;margin:30px 0 20px}.student-workspace-heading .student-section-eyebrow{color:var(--accent)}.student-page-copy h1{max-width:620px;font-size:clamp(26px,3vw,36px);line-height:1.15}.student-page-copy p{margin-bottom:0}.student-summary-item{background:#ffffffe6}.student-join-panel{border-radius:16px;border-left:5px solid var(--accent);box-shadow:none}.student-join-icon{background:#edf5ff;color:var(--accent)}.student-assignment-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.student-assignment-card{--subject-color: var(--accent);min-height:196px;border-radius:16px;padding:19px;box-shadow:none}.student-assignment-card.subject-toan{--subject-color: var(--toan)}.student-assignment-card.subject-ly{--subject-color: var(--ly)}.student-assignment-card.subject-hoa{--subject-color: var(--hoa)}.student-assignment-card:before{width:5px;background:var(--subject-color)}.student-assignment-card:after{content:"";position:absolute;width:116px;height:116px;right:-42px;top:26px;border-radius:50%;background:color-mix(in srgb,var(--subject-color) 10%,transparent);pointer-events:none}.student-assignment-card>*{position:relative;z-index:1}.student-assignment-card:hover{border-color:color-mix(in srgb,var(--subject-color) 35%,#cbd4e1);box-shadow:var(--lift-sm)}.student-subject-chip{border-radius:999px;padding:4px 9px;background:color-mix(in srgb,var(--subject-color) 10%,#fff);color:var(--subject-color)!important}.student-card-open{width:100%;min-height:38px;justify-content:space-between;margin-top:auto;padding:9px 13px;border-radius:10px;background:var(--accent);color:#fff}.student-assignment-card:hover .student-card-open{background:var(--accent-hi)}.student-content-section .student-section-heading{align-items:end}.student-class-card{border-radius:14px;background:#fff;box-shadow:none}.student-progress-overview{border-radius:16px;border-left:5px solid var(--accent);box-shadow:none}.student-profile-card{border-radius:16px;box-shadow:none}.teacher-library{width:min(1180px,calc(100% - 48px));padding-top:24px}.teacher-library-toolbar{position:sticky;top:80px;z-index:20;border-radius:14px;background:#fffffff0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.teacher-library-tab,.subject-filter-button{border-radius:10px}.teacher-library-tab.is-active,.subject-filter-button.is-active{color:#075acb;background:#edf5ff;border-color:#b8d3f7;box-shadow:none}.teacher-library-heading{margin-top:28px}.teacher-library-heading h1{font-size:clamp(26px,3vw,36px)}.catalog-notice{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-4px 0 16px;border:1px solid #f0d99c;border-radius:12px;padding:10px 12px;background:#fff9e9;color:#6f520d;font-size:11.5px}.catalog-notice button{flex:none;border:1px solid #d5b85f;border-radius:8px;padding:6px 10px;background:#fff;color:#694c08;cursor:pointer;font:inherit;font-weight:800}.experiment-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.experiment-card{min-height:196px;border-radius:16px;padding:19px;box-shadow:none}.experiment-card:before{width:5px}.experiment-card:after{content:"";position:absolute;width:116px;height:116px;right:-42px;top:26px;border-radius:50%;background:color-mix(in srgb,var(--subject-color) 10%,transparent);pointer-events:none}.experiment-card>*{position:relative;z-index:1}.experiment-card:hover{border-color:color-mix(in srgb,var(--subject-color) 35%,#cbd4e1)}.experiment-card h2{font-size:16px}.experiment-card-actions{margin-top:auto;padding-top:18px}.article{max-width:1240px;padding-left:32px;padding-right:32px}.spread{grid-template-columns:154px minmax(0,1fr);gap:0 36px}.composer{border-radius:20px;background:#fff;box-shadow:var(--lift)}.composer-field{line-height:1.65}.confirm-card{border-radius:18px}.spec-lab-page{max-width:1240px;padding-left:32px;padding-right:32px}.spec-lab-hero{padding:18px 0 22px}.spec-lab-hero h1{font-size:clamp(28px,4vw,42px)}.spec-lab-layout{grid-template-columns:minmax(0,1fr) 300px;gap:14px}.spec-preview-panel,.spec-controls-panel{border-radius:17px;overflow:hidden;box-shadow:var(--lift-sm)}.spec-controls-panel{padding-bottom:14px}.spec-panel-head{padding:13px 16px;background:#f7f9fc}.spec-preview-stage{min-height:350px;padding:10px}.spec-preview-stage .labview-synced{gap:10px}.spec-preview-stage .labview-synced .labview-plot-section{padding-left:10px}.spec-preview-stage .labview-synced .plot-axis-text{font-size:14px}.spec-preview-stage .labview-synced .plot-axis-label,.spec-preview-stage .labview-synced .plot-axis-unit{font-size:12.5px}.spec-preview-stage .labview-synced path[data-axis]{stroke-width:2.8}.spec-preview-stage .labview-synced .plot-playback-point{r:6.5px}.spec-preview-stage .labview-synced .plot-legend{font-size:12px}.spec-preview-stage .kit-body-shape,.spec-preview-stage .kit-body-halo{transform-box:fill-box;transform-origin:center;transform:scale(1.18)}.spec-validation-summary{padding:10px 16px}.spec-param-list{padding:2px 16px 6px}.spec-param{gap:8px;padding-top:8px;padding-bottom:8px}.spec-param strong{font-size:12px}.spec-param input{width:82px;min-height:34px}.spec-run-button{width:calc(100% - 32px);min-height:38px;margin:8px 16px 0}.spec-action-row{margin:8px 16px 0}.spec-derived,.spec-theory,.spec-mentor-dock{margin-left:16px;margin-right:16px}.spec-mentor-dock{margin-top:12px;padding-top:12px}.spec-mentor-dock>.tutor-toggle-btn{min-height:36px;padding:8px 11px;gap:8px;font-size:12.5px;font-weight:650}.spec-mentor-dock .universal-tutor{position:fixed;right:18px;bottom:18px;z-index:220;width:min(360px,calc(100vw - 36px));max-height:calc(100vh - 36px);border-radius:12px;background:#fffffffa;box-shadow:0 20px 54px #16181f33}.spec-mentor-dock .universal-tutor .card-head{padding:10px 12px}.spec-mentor-dock .universal-tutor .chat-stream{min-height:84px;max-height:min(220px,calc(100vh - 180px));overflow-y:auto;gap:10px;padding:12px}.spec-mentor-dock .universal-tutor .bubble{max-width:92%;padding:9px 11px;font-size:12.5px;line-height:1.45}.spec-mentor-dock .universal-tutor .chat-input{gap:7px;padding:9px}.spec-mentor-dock .universal-tutor .chat-input input{min-width:0;padding:8px 11px;font-size:12.5px}.spec-mentor-dock .universal-tutor .chat-input .btn{min-width:46px;height:34px;padding:0 10px;font-size:12px}.assign-banner{margin-top:20px;border-radius:14px;box-shadow:none}.object-head{padding-top:28px}.object-title{font-size:clamp(32px,4.5vw,50px)}.object-desc{font-size:16px}.pulse{border-radius:14px;background:#fff}.board,.apparatus,.plot-card,.data-table-wrap{border-radius:16px}.lens-tabs{position:sticky;top:78px;z-index:15;border-radius:13px;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.universal-tutor{overflow:hidden;border-radius:16px}.chat-stream{background:#f8fafc}.bubble{max-width:min(82%,620px)}.assign-dialog-backdrop{background:#0d182a8a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.assign-dialog{border-radius:18px;box-shadow:0 28px 80px -30px #091529a6}.err-banner,.spec-page-error,.spec-inline-error{border-radius:13px}.generation-review{margin-top:14px;padding:16px;border:1px solid #dbe5f3;border-radius:14px;background:#f8fbff;color:#1d2b43}.generation-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.generation-review-kicker{color:#60708b;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.generation-review h3{margin:3px 0 0;font-size:16px}.generation-review-status{flex:none;padding:5px 9px;border-radius:999px;background:#e8f8f1;color:#087755;font-size:12px;font-weight:800}.generation-review-status.failed{background:#fff0ec;color:#b33a25}.generation-review-retries{display:flex;flex-wrap:wrap;gap:6px;margin:11px 0;color:#60708b;font-size:12px}.generation-review-retries code{color:#365477}.generation-review details{border-top:1px solid #e2eaf5;padding-top:10px}.generation-review summary{cursor:pointer;font-size:13px;font-weight:750}.generation-review-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px;margin:10px 0 2px;padding:0;list-style:none}.generation-review-steps li{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 9px;border:1px solid #dfe8f3;border-radius:9px;background:#fff}.generation-review-steps li>span{display:grid;flex:none;width:20px;height:20px;place-items:center;border-radius:50%;background:#dcf7ec;color:#07805a;font-weight:900}.generation-review-steps li.failed>span{background:#ffebe6;color:#bc3c26}.generation-review-steps strong,.generation-review-steps small{display:block}.generation-review-steps strong{font-size:12px}.generation-review-steps small{margin-top:1px;color:#71809a;font-size:10.5px}.generation-review-list{margin-top:11px;font-size:12px}.generation-review-list>strong{color:#445670}.generation-review-list ul{margin:5px 0 0;padding-left:19px}.generation-review-list li+li{margin-top:3px}.generation-review-list.fixed{color:#087755}.generation-review-list.path li{color:#49617e;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}@media (max-width: 880px){.topbar-in{padding:9px 18px}.brand-sub{max-width:260px}.app,.article,.spec-lab-page{padding-left:20px;padding-right:20px}.student-home-layout{gap:18px}.student-sidebar{margin-bottom:0}.student-shell>.student-sidebar{display:none}.sidebar-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.sidebar-item{justify-content:center;padding:9px}.sidebar-item.active:before{left:12px;right:12px;top:auto;bottom:0;width:auto;height:3px}.spread{grid-template-columns:1fr}.landing-hero{grid-template-columns:1fr;gap:36px;text-align:center}.landing-title,.landing-lede{margin-left:auto;margin-right:auto}.landing-auth-cta{justify-content:center}.landing-hero-visual{width:min(680px,100%);margin:0 auto;transform:none}.student-workspace-heading{grid-template-columns:1fr;align-items:start}.student-workspace-heading .student-summary-grid{width:100%}.spec-lab-layout{grid-template-columns:1fr}.spec-mentor-dock .universal-tutor{right:12px;bottom:12px;width:calc(100vw - 24px)}}@media (max-width: 700px){.topbar-in{min-height:60px}.brand-mark{width:34px;height:34px}.brand-sub,.topbar-workspace span,.lib-link span{display:none}.topbar-workspace,.lib-link{width:38px;padding:0}.back-link span{display:none}.back-link{width:38px;justify-content:center;padding:0}.landing{padding:0 18px 64px}.landing:before{left:0}.landing:after{right:0}.landing-hero{padding-top:48px;gap:28px}.landing-title{font-size:clamp(37px,11vw,52px)}.subject-discovery{padding:18px}.subject-discovery-heading{align-items:flex-start;flex-direction:column;gap:5px}.subject-grid,.chooser{grid-template-columns:1fr}.subject-tile{min-height:76px}.choose-card{min-height:0;padding:22px}.app,.article,.spec-lab-page{padding-left:14px;padding-right:14px}.teacher-library{width:calc(100% - 28px)}.teacher-library-toolbar{position:static;align-items:stretch;flex-direction:column}.teacher-library-tabs,.teacher-library-actions{display:grid;grid-template-columns:1fr 1fr}.student-workspace-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-library-heading{align-items:flex-start;flex-direction:column}.subject-filter{justify-content:flex-start}.experiment-grid{grid-template-columns:1fr}.object-desc{font-size:14px}.lens-tabs{top:66px}.generation-review-head{align-items:flex-start;flex-direction:column;gap:8px}.generation-review-steps{grid-template-columns:1fr}}@media (max-width: 520px){.brand-name{max-width:180px;font-size:13px}.topbar-login,.topbar-register{padding:7px 9px;font-size:11px}.subject-tile p,.subject-count{display:none}.sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-item{justify-content:flex-start}.student-workspace-toolbar{padding:7px}.student-workspace-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.student-workspace-tabs .teacher-library-tab{min-width:0;justify-content:center;padding:8px 5px;font-size:10.5px;text-align:center}.student-workspace-actions{grid-template-columns:1fr 1fr}.student-workspace-heading{margin-top:22px}.experiment-card-actions{grid-template-columns:1fr}.assign-banner{align-items:flex-start;flex-wrap:wrap}.assign-due{margin-left:30px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
