:root{font-family:DM Sans,Noto Sans SC,sans-serif;color:#1e2d47;background:#f3f4f5;font-synthesis:none;font-size:13px;--navy:#182844;--gold:#ad8846;--line:#e0e3e7;--muted:#777f8d}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:3px}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dadde2;background:#fff;color:#273957;border-radius:5px;padding:10px 15px;font-weight:500;transition:background .15s}button:hover{background:#eff0f2}button:disabled{opacity:.45;cursor:not-allowed}button.primary,.save{background:var(--navy);color:#fff;border-color:var(--navy)}button.primary:hover,.save:hover{background:#2e446a}h1,h2,h3,p{margin-top:0}h3{font-size:16px;font-weight:600;line-height:1.6;margin-bottom:16px}p{line-height:1.9}a{color:inherit}input,textarea,select{background:#fdfdfd;border:1px solid #dadde2;border-radius:4px;color:#273855;padding:10px;width:100%;min-width:0}input:focus,textarea:focus,select:focus{border-color:var(--gold);outline:2px solid #ad884622}input[type=checkbox]{width:16px;height:16px;accent-color:var(--navy)}textarea{resize:vertical;line-height:1.7}label{display:flex;flex-direction:column;gap:9px;font-size:12px;color:#596579}small{display:block;font-size:11px;color:var(--muted);font-weight:400}.workspace-loading{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;background:#faf9f6;color:#1e2d47}:root{--spring-out:cubic-bezier(.16,1,.3,1);--spring-soft:cubic-bezier(.22,1.15,.36,1);--motion-fast:.18s;--motion-base:.42s}.auth-scene{--auth-ink:#0e2034;--auth-paper:#faf9f6;--auth-gold:#c7ab76;--auth-body:#43505d;--auth-muted:#66717d;position:relative;min-height:100svh;display:grid;grid-template-rows:104px 1fr 68px;background:var(--auth-paper);color:var(--auth-ink);isolation:isolate;overflow:hidden;font-family:Helvetica Neue,Noto Sans SC,PingFang SC,sans-serif}.auth-landscape{position:absolute;top:0;right:44%;bottom:0;left:0;z-index:-1;background:var(--auth-ink);overflow:hidden}.auth-rule{position:absolute;width:1px;height:70%;bottom:-35%;background:#b9c9d716;transform:rotate(36deg);transform-origin:bottom;pointer-events:none}.rule-one{right:12%}.rule-two{right:29%}.rule-three{right:46%}.auth-topbar{position:relative;display:grid;grid-template-columns:56% 44%;align-items:center;z-index:1}.auth-brand{margin-left:clamp(40px,5.5vw,100px);display:flex;align-items:center;gap:14px;justify-self:start;text-decoration:none;color:#f6f3ec}.auth-brand-mark{display:grid;place-items:center;width:39px;height:44px;border:1px solid #bca371;font:34px/1 Georgia,serif;color:var(--auth-gold)}.auth-brand-type b{display:block;font:28px/1 Georgia,Times New Roman,serif;letter-spacing:4px;font-weight:400}.auth-brand-type small{font-size:8px;letter-spacing:1.9px;color:#bdc7d3;line-height:1.4;margin-top:7px;white-space:nowrap}.auth-access{display:flex;justify-content:flex-end;align-items:center;gap:24px;padding-right:clamp(32px,4vw,72px)}.auth-access>span{font-size:9px;letter-spacing:1.7px;color:var(--auth-muted)}.auth-language{border:0;border-left:1px solid #d9dbde;border-radius:0;color:#384654;background:transparent;min-width:66px;min-height:44px;padding:10px 0 10px 20px;font-size:12px;gap:8px}.auth-language:hover{background:transparent;color:#83632b}.auth-layout{display:grid;grid-template-columns:56% 44%;align-items:center;width:100%;min-width:0}.auth-editorial{position:relative;padding:42px clamp(40px,5.5vw,100px) 55px;max-width:850px;width:100%;margin:auto;color:#f6f3ec}.auth-kicker{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:2px;font-weight:500;line-height:1.6}.auth-editorial>.auth-kicker{color:#c9b48d}.auth-kicker i{height:1px;width:30px;flex-shrink:0;background:var(--auth-gold)}.auth-editorial h1{font-family:Iowan Old Style,Songti SC,"Noto Serif SC",STSong,Georgia,serif;font-size:clamp(44px,4vw,64px);font-weight:400;line-height:1.42;letter-spacing:.065em;margin:31px 0 24px}.auth-editorial h1 em{font-style:normal;color:var(--auth-gold)}.auth-editorial>p{font-size:14px;line-height:2;color:#b7c2d0;max-width:450px;letter-spacing:.035em;margin:0}.auth-framework{margin-top:44px;border-top:1px solid #a8b8cb3b;padding-top:16px;max-width:520px}.auth-framework-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px;letter-spacing:1.4px;color:#a8b8ca}.auth-framework-head>span:last-child{font-family:SFMono-Regular,Consolas,monospace;letter-spacing:1px;font-size:10px;color:var(--auth-gold)}.auth-journey{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.auth-journey>div{display:grid;gap:8px}.auth-journey span{font:11px/1.5 SFMono-Regular,Consolas,monospace;color:var(--auth-gold)}.auth-journey b{font-size:17px;line-height:1.5;letter-spacing:.05em;font-weight:400;color:#f4f3ed}.auth-journey small{font-size:8px;letter-spacing:1.15px;line-height:1.7;color:#aebccc}.auth-editorial-note{display:flex;gap:16px;align-items:center;margin-top:38px}.auth-editorial-note>span{font:37px/1.1 Georgia,serif;color:var(--auth-gold);padding-right:17px;border-right:1px solid #a8b8cb3b}.auth-editorial-note>p{font-size:11px;line-height:1.8;color:#c0cad6;margin:0}.auth-editorial-note small{font-size:10px;line-height:1.7;color:#aebccc;margin-top:2px}.auth-card{position:relative;width:calc(100% - 112px);max-width:380px;margin:0 auto;padding:36px 0 48px;min-width:0}.auth-card-heading .auth-kicker{font-size:10px;letter-spacing:2px;color:#866a38;margin-bottom:16px}.auth-card h2{font-size:28px;line-height:1.5;letter-spacing:-.7px;font-weight:500;margin:0 0 12px}.auth-card-heading>p{font-size:13px;line-height:1.8;color:var(--auth-muted);margin:0}.auth-role-select{display:flex;position:relative;gap:28px;border-bottom:1px solid #d8dadd;margin:30px 0 28px}.auth-role-select>button{position:relative;flex:1;gap:8px;justify-content:flex-start;padding:12px 0 15px;min-height:48px;border:0;border-radius:0;background:transparent;font-size:14px;font-weight:500;color:#67717b;transition:color .18s}.auth-role-select>button small{font-size:8px;font-weight:400;letter-spacing:.7px;color:inherit;line-height:1.4}.auth-role-select>button:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#a5854c;transform:scaleX(0);transform-origin:left;transition:transform .18s}.auth-role-select>button[aria-selected=true]{color:var(--auth-ink)}.auth-role-select>button[aria-selected=true]:after{transform:scaleX(1)}.auth-role-select>button:hover{color:#83632b;background:transparent}.auth-form{display:grid;gap:22px}.auth-form>label{font-size:12px;font-weight:500;gap:10px;color:#3d4b59;line-height:1.5}.auth-input{display:flex;align-items:center;border:1px solid #8a929b;background:#fff;border-radius:2px;padding:0 14px;gap:11px;transition:border-color .18s,box-shadow .18s}.auth-input:focus-within{border-color:#9e804a;box-shadow:0 0 0 3px #ad88461a}.auth-input>svg{color:#677685;flex-shrink:0;stroke-width:1.5}.auth-input input{border:0;outline:0!important;background:transparent;padding:15px 0;font-size:14px;line-height:1.5;color:#142a3d;border-radius:0;min-width:0;box-shadow:none;min-height:52px}.auth-input input::placeholder{color:#697580;font-size:13px;font-weight:400}.auth-input button{border:0;padding:10px;background:transparent;color:#657383;flex-shrink:0;margin-right:-8px;border-radius:2px;min-width:44px;min-height:44px}.auth-input button:hover{background:#f0f2f4;color:#142a3d}.auth-input:has(input:disabled){opacity:.65}.auth-form>.auth-remember{flex-direction:row;gap:10px;align-items:center;min-height:32px;font-size:12px;font-weight:400;cursor:pointer;line-height:1.5;margin-top:-7px;margin-bottom:-6px;color:#5b6773}.auth-remember input{width:16px;height:16px;margin:0;accent-color:var(--auth-ink);flex-shrink:0;border-radius:0}.auth-submit{width:100%;min-height:52px;padding:14px 18px;border:1px solid var(--auth-ink);border-radius:2px;color:#fff;background:var(--auth-ink);box-shadow:none;font-size:14px;font-weight:500;justify-content:space-between;gap:14px;margin-top:2px;transition:background .18s,border-color .18s}.auth-submit:hover{background:#213d58;border-color:#213d58}.auth-submit svg{transition:transform .18s}.auth-submit:hover svg:last-child:not(.auth-spin){transform:translate(3px)}.auth-submit:active{background:#091727}.auth-submit:disabled{opacity:.6;cursor:wait}.auth-card-foot{margin-top:27px;padding-top:20px;border-top:1px solid #dcdde0;display:flex;align-items:flex-start;gap:8px;font-size:11px;color:#69737d;line-height:1.8}.auth-card-foot svg{flex-shrink:0;margin-top:3px;color:#876d40}.auth-error{display:flex;align-items:flex-start;gap:8px;color:#93372a;font-size:12px;line-height:1.7;background:#fbf0ec;border:1px solid #e8c8bf;padding:11px 12px;border-radius:2px;animation:input-shake .3s ease}.auth-error svg{flex-shrink:0;margin-top:2px}.auth-caps{font-size:12px;color:#836224;margin-top:-8px}.auth-bottom{position:relative;display:grid;grid-template-columns:56% 44%;align-items:center;font-size:9px;letter-spacing:1.3px;line-height:1.7}.auth-bottom>span{display:flex;align-items:center;gap:9px;padding:0 clamp(40px,5.5vw,100px);color:#aebccc}.auth-bottom>span:last-child{padding:0 32px;justify-content:center;color:#65707c;font-size:10px;letter-spacing:.3px}.auth-bottom i{width:2px;height:2px;background:var(--auth-gold);margin:0 2px}.auth-connection,.auth-success{min-height:450px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px}.auth-lock{display:grid;place-items:center;width:48px;height:48px;border:1px solid #c6cdd4;color:#8b6e3b;border-radius:2px;margin-bottom:3px}.auth-connection h2,.auth-success h2{font-size:25px;margin:0}.auth-connection p,.auth-success p{font-size:14px;color:var(--auth-muted);line-height:1.8;max-width:320px;margin:0}.auth-spin{animation:auth-spin .9s linear infinite}.success-orbit{display:grid;place-items:center;width:56px;height:56px;color:#5c6678;border:1px solid #b3b9c3;border-radius:50%;margin-bottom:8px;animation:unlock-check .3s var(--spring-out) both}.auth-success .auth-kicker{color:#866a38;font-size:9px}.auth-scene.is-unlocking .auth-card{animation:unlock-panel .54s var(--spring-out) forwards}.session-workspace.is-entering{animation:workspace-unlock .42s var(--spring-out) backwards;min-height:100svh}.session-workspace.is-locking{animation:workspace-lock .48s ease forwards;pointer-events:none}.auth-scene button:focus-visible,.auth-scene a:focus-visible,.auth-scene input[type=checkbox]:focus-visible{outline:2px solid #a5854c;outline-offset:4px}.auth-scene:lang(en) .auth-editorial h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(36px,3.4vw,58px);letter-spacing:-.035em;line-height:1.3}.auth-scene:lang(en) .auth-role-select{gap:20px}.auth-scene:lang(en) .auth-role-select>button small{display:none}.account-control{position:relative}.account-trigger{display:flex;gap:9px;padding:4px 6px!important;border:1px solid transparent;font-size:10px!important;text-align:left;min-width:100px;border-radius:22px;background:transparent}.account-trigger:hover,.account-trigger[aria-expanded=true]{background:#eceef280;border-color:#dfe3e9}.account-trigger>span:last-child{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-trigger small{font-size:8px;color:#9499a3;margin-top:3px}.account-avatar{width:30px;height:30px;border:1px solid #cad0d9;background:linear-gradient(140deg,#f0f3f7,#dfe3ea);border-radius:50%;display:grid;place-items:center;color:#677285;font:14px Georgia,serif;flex-shrink:0}.account-popover{position:absolute;right:0;top:calc(100% + 12px);z-index:20;background:#f9fafcf0;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:1px solid #fff;border-radius:15px;box-shadow:0 15px 45px #1e2f4c26,0 1px 5px #1e2f4c15;width:230px;padding:8px;animation:popover-in .25s var(--spring-out) both;transform-origin:top right}.account-popover>div{padding:10px 11px 13px;border-bottom:1px solid #dfe3ea;margin-bottom:5px}.account-popover b{font-size:12px;font-weight:500}.account-popover small{margin-top:4px;font-size:10px}.account-popover>button{border:0;background:none;width:100%;justify-content:flex-start;font-size:11px;padding:12px;border-radius:9px}.account-popover>button:hover{background:#e3e6ed80}.app header{position:relative;z-index:5}.app button{transition:transform .17s var(--spring-soft),background .17s,box-shadow .17s}.app button:active:not(:disabled){transform:scale(.97)}.app .work-panel{animation:content-arrive .4s var(--spring-out) both}.app .mode-toggle{border-radius:24px;padding:4px;background:#e3e5eaa8}.app .mode-toggle button{border-radius:20px;transition:background .25s,box-shadow .25s,transform .18s var(--spring-soft)}.app .mode-toggle .active{box-shadow:0 1px 4px #2d3a4f20,0 0 0 1px #ffffffb3}.app .toast{animation:toast-arrive .35s var(--spring-soft) both;border-radius:10px;box-shadow:0 4px 15px #2a395210}.app .snapshot-panel{animation:panel-reveal .35s var(--spring-out) both;transform-origin:top}.app nav button{transition:background .25s,box-shadow .25s,transform .18s var(--spring-soft)}.app .metric strong{animation:content-arrive .45s var(--spring-out) both}.app .bar i{transition:width .65s var(--spring-out)}@keyframes auth-spin{to{transform:rotate(360deg)}}@keyframes editorial-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes card-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes unlock-check{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes unlock-panel{0%,65%{opacity:1;transform:none}to{opacity:0;transform:translateY(-5px)}}@keyframes workspace-unlock{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes workspace-lock{to{opacity:0}}@keyframes popover-in{0%{opacity:0;transform:scale(.94) translateY(-5px)}to{opacity:1;transform:none}}@keyframes input-shake{20%,60%{transform:translate(-3px)}40%,80%{transform:translate(3px)}0%,to{transform:none}}@keyframes content-arrive{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes toast-arrive{0%{opacity:0;transform:translateY(-7px) scale(.98)}to{opacity:1;transform:none}}@keyframes panel-reveal{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media(min-width:1600px){.auth-card{max-width:420px}.auth-card h2{font-size:32px}.auth-editorial{padding-block:60px}.auth-framework{margin-top:56px}.auth-editorial-note{margin-top:46px}.auth-form{gap:24px}}@media(max-width:1150px){.auth-card{width:calc(100% - 72px)}.auth-editorial{padding-inline:40px}.auth-brand{margin-left:40px}.auth-access{padding-right:32px}.auth-journey{gap:12px}.auth-journey small{font-size:7px;letter-spacing:.6px}.auth-editorial>p{font-size:13px}.auth-bottom>span{padding-inline:40px}.auth-access>span{display:none}.auth-role-select{gap:18px}.auth-role-select>button{gap:6px}.auth-role-select>button small{font-size:7px}.app header{padding:0 20px;gap:10px}.app header>div{gap:8px}.app header .breadcrumb{display:none}.app header input{width:155px}.account-trigger>span:last-child{display:none}.account-trigger{min-width:0!important;padding:2px!important}}@media(max-width:820px){.auth-scene{grid-template-rows:88px 1fr 64px}.auth-landscape{inset:0 0 auto;height:88px}.auth-rule{display:none}.auth-topbar{grid-template-columns:1fr auto;border-bottom:1px solid #ffffff14}.auth-brand{margin-left:28px}.auth-brand-mark{width:31px;height:36px;font-size:27px}.auth-brand-type b{font-size:24px;letter-spacing:3px}.auth-brand-type small{font-size:7px;letter-spacing:1.5px;margin-top:5px}.auth-access{padding-right:28px}.auth-language{color:#f2f1ea;border:0;padding:8px;min-width:44px}.auth-language:hover{color:#dcc398}.auth-layout{grid-template-columns:1fr}.auth-editorial{display:none}.auth-card{max-width:420px;width:calc(100% - 64px);padding:48px 0 38px}.auth-card h2{font-size:28px}.auth-role-select>button small{font-size:8px}.auth-bottom{grid-template-columns:1fr}.auth-bottom>span:first-child{display:none}.auth-bottom>span:last-child{font-size:10px;padding:0 24px}.auth-connection,.auth-success{min-height:400px}}@media(max-width:440px){.auth-card{width:calc(100% - 48px);padding:38px 0 28px}.auth-card h2{font-size:26px}.auth-card-heading>p{font-size:13px}.auth-form{gap:20px}.auth-input input{font-size:16px}.auth-role-select{margin-top:25px;margin-bottom:25px;gap:24px}.auth-topbar .auth-brand{margin-left:24px}.auth-access{padding-right:20px}.auth-brand-type small{letter-spacing:1.2px}.auth-form>.auth-remember{min-height:44px}.app header{padding:12px;gap:8px}.app header>div{gap:4px}.app header input{width:135px}.app header button{padding:7px 9px}.account-popover{right:-2px}}@media(max-height:740px)and (min-width:821px){.auth-scene{grid-template-rows:86px 1fr 50px}.auth-editorial{padding-block:20px}.auth-editorial h1{font-size:48px;margin-block:24px 20px}.auth-framework,.auth-editorial-note{margin-top:28px}.auth-card{padding-block:16px}.auth-role-select{margin-block:20px}.auth-form{gap:18px}.auth-card-foot{margin-top:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.auth-scene.is-unlocking .auth-card,.session-workspace.is-locking{opacity:1;transform:none;filter:none}}@media(prefers-reduced-transparency:reduce){.account-popover{background:#f9fafc;-webkit-backdrop-filter:none;backdrop-filter:none}}.account-error{padding:8px 10px;margin:0;color:#a04c39;font-size:10px;line-height:1.6}.app[data-role=teacher] .account-avatar{color:#8e784c;border-color:#d9cba9;background:linear-gradient(140deg,#f7f2e5,#ece2c8)}
