/* Login styles stay scoped so authenticated workspaces retain their approved layout. */
.login-page{--login-dark:#173e35;--login-accent:#d6efa5;--login-paper:#f8f9f5;--login-muted:#67776e;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);min-height:100svh;background:var(--login-paper);color:#203b32;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif}
.login-page *{box-sizing:border-box}

.login-teacher{--login-dark:#193c34;--login-accent:#d6ebac;--login-paper:#f6f7f3;--login-muted:#748078;color:#253c32}
.login-story{position:relative;display:flex;flex-direction:column;overflow:hidden;min-height:800px;padding:44px 56px 30px;background:var(--login-dark);color:#fff}
.login-brand{display:flex;align-items:center;gap:13px;position:relative;z-index:1}
.login-logo{width:43px;height:43px;display:grid;place-items:center;background:var(--login-accent);color:var(--login-dark);border-radius:14px}
.login-logo svg{width:32px;height:32px}.login-brand strong{font-size:22px;letter-spacing:2px;display:block;line-height:1.3}.login-brand small{display:block;font-size:8px;letter-spacing:3.4px;margin-top:6px;color:var(--login-accent)}
.login-editorial{margin-top:74px;position:relative;z-index:1}.login-kicker{font-size:10px;letter-spacing:2.5px;font-weight:600;line-height:1.6;margin:0 0 20px}.login-story .login-kicker{color:var(--login-accent);display:flex;align-items:center;gap:10px}.login-kicker>span{width:22px;height:1px;background:currentColor}
.login-editorial h1{font-size:clamp(34px,3.55vw,57px);font-weight:500;line-height:1.38;letter-spacing:1px;margin:0 0 22px;color:#fff}.login-teacher .login-editorial h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.13;letter-spacing:-1.8px;font-size:clamp(42px,4.25vw,68px)}
.login-intro{font-size:14px;line-height:1.95;color:#d5e1d9;margin:0}
.login-art{position:relative;flex:1;min-height:280px;margin-top:24px;isolation:isolate}.login-orbit{position:absolute;width:330px;height:330px;border:1px solid #ffffff1f;border-radius:50%;right:-48px;top:4px;transform:rotate(-27deg)}.orbit-two{width:420px;height:200px;top:80px;right:-85px}.login-disc{width:112px;height:112px;border-radius:50%;background:var(--login-accent);position:absolute;right:55px;top:3px;box-shadow:inset -14px -10px 26px #0000000c}
.login-arch{position:absolute;width:154px;height:224px;right:103px;bottom:28px;border-radius:100px 100px 3px 3px;background:linear-gradient(120deg,#90ad97,#577e6b);transform:rotate(-16deg);box-shadow:13px 25px 40px #071e2829}.arch-front{width:140px;height:196px;right:8px;bottom:15px;background:linear-gradient(125deg,#eaf2d6,#aac67e);transform:rotate(13deg)}.arch-front:after{content:"";position:absolute;inset:26px 24px 0;border:1px solid #34564142;border-bottom:0;border-radius:80px 80px 0 0}

.login-spark{position:absolute;right:0;top:0;font-size:48px;font-weight:300;color:var(--login-accent);line-height:1}.login-art-caption{position:absolute;left:0;bottom:36px;z-index:2;max-width:220px}.login-art-caption>span{display:block;font-size:9px;letter-spacing:2px;color:#c9d2c6;margin-bottom:13px}.login-art-caption strong{display:block;max-width:160px;font:italic 27px/1.18 Georgia,serif;font-weight:400;color:#fff}.login-art-caption small{display:block;font-size:10px;color:#d5dfd9;margin-top:12px;line-height:1.6}
.login-story-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff25;padding-top:21px;margin-top:15px;color:#d5dfd9;font-size:10px;letter-spacing:1.3px}.login-story-footer .icon{width:18px;height:18px}
.login-side{padding:40px 48px 28px;display:flex;flex-direction:column;min-width:0}.login-topline{display:flex;justify-content:space-between;gap:18px;font-size:11px;color:var(--login-muted)}.login-topline>span:first-child{color:var(--login-dark);font-weight:600;letter-spacing:.8px}.login-language{display:flex;align-items:center;gap:7px}.login-language .icon{width:14px;height:14px}
.login-form-wrap{width:100%;max-width:368px;margin:auto; padding:54px 0 42px}.login-entry-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid #dce2d5;border-radius:15px;background:#fff9;color:var(--login-dark);margin-bottom:30px}.login-entry-icon .icon{width:23px;height:23px}.login-form-wrap>.login-kicker{color:var(--login-muted);font-size:9px;letter-spacing:2px;margin-bottom:11px}
.login-form-wrap h2{font-size:30px;font-weight:600;letter-spacing:-.7px;line-height:1.3;margin:0 0 13px;color:var(--login-dark)}.login-teacher .login-form-wrap h2{font:400 39px/1.2 Georgia,serif;letter-spacing:-1px}.login-subtitle{font-size:13px;line-height:1.7;color:var(--login-muted);margin:0 0 34px}
.login-form{display:flex;flex-direction:column}.login-form>label{font-size:12px;font-weight:600;color:var(--login-dark);margin:0 0 9px}.login-form input{width:100%;height:51px;border:1px solid #d8dfd6;border-radius:9px;background:#fff;color:var(--login-dark);font-family:inherit;font-size:14px;line-height:1.5;padding:0 15px;outline:none;transition:border-color .18s,box-shadow .18s;min-width:0}.login-form input::placeholder{color:#858d86;font-size:12px}.login-form>input{margin-bottom:24px}.login-form input:focus{border-color:var(--login-dark);box-shadow:0 0 0 3px #9dad8b29}.login-password{position:relative}.login-password input{padding-right:52px}.login-password button{position:absolute;right:4px;top:4px;display:grid;place-items:center;width:43px;height:43px;border:0;background:transparent;border-radius:6px;color:var(--login-muted);cursor:pointer}.login-password svg{width:20px;height:20px}.login-password button:hover,.login-password button[aria-pressed=true]{color:var(--login-dark);background:#e6eade}
.login-form #web-login-error{min-height:20px;color:#a43832;font-size:12px;line-height:1.65;margin:12px 0 16px;overflow-wrap:anywhere}.login-submit{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;height:52px;border:1px solid var(--login-dark);border-radius:9px;background:var(--login-dark);color:#fff;padding:0 19px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:transform .18s,box-shadow .18s}.login-submit .icon{width:18px;height:18px}.login-submit:hover{box-shadow:0 6px 16px #173e351a;transform:translateY(-1px)}.login-submit:disabled{opacity:.65;cursor:wait;transform:none}
.login-page button:focus-visible,.login-help summary:focus-visible{outline:3px solid #9baa88;outline-offset:4px}.login-help{text-align:center;margin-top:20px;color:var(--login-muted);font-size:12px;line-height:1.7}.login-help summary{cursor:pointer;list-style:none;display:inline-block;border-bottom:1px solid #c8cfc3}.login-help summary::-webkit-details-marker{display:none}.login-help p{margin:12px 0 0;padding:12px;border-radius:8px;background:#ecefe5;color:var(--login-dark)}.login-trust{display:flex;align-items:center;justify-content:center;gap:7px;border-top:1px solid #dfe3d9;margin-top:34px;padding-top:22px;color:var(--login-muted);font-size:10px}.login-trust .icon{width:14px;height:14px}.login-footer{display:flex;justify-content:space-between;gap:12px;color:var(--login-muted);font-size:9px;letter-spacing:.6px}
@media(min-width:1600px){.login-story{padding-left:80px;padding-right:80px}.login-art{max-width:560px;width:100%;align-self:center}.login-side{padding:44px 64px 30px}.login-form-wrap{max-width:400px}.login-editorial{margin-top:90px}}
@media(max-width:1100px){.login-story{padding-left:32px;padding-right:32px}.login-side{padding-left:32px;padding-right:32px}.login-art-caption{bottom:18px}.login-arch{right:65px;bottom:70px;width:130px;height:190px}.arch-front{right:-10px;bottom:55px;width:115px;height:165px}.login-disc{right:18px;width:95px;height:95px}.login-art-caption strong{font-size:24px}}
@media(max-width:760px){.login-page{grid-template-columns:1fr}.login-story{min-height:0;padding:25px 28px 30px}.login-brand strong{font-size:19px}.login-logo{width:38px;height:38px;border-radius:12px}.login-editorial{margin-top:32px}.login-editorial h1{font-size:31px;margin-bottom:0;line-height:1.4}.login-teacher .login-editorial h1{font-size:40px}.login-story .login-kicker{margin-bottom:12px;font-size:9px}.login-intro,.login-art,.login-story-footer{display:none}.login-side{padding:23px 28px 25px}.login-form-wrap{padding:32px 0 40px;max-width:420px}.login-entry-icon{display:none}.login-form-wrap h2{font-size:27px}.login-teacher .login-form-wrap h2{font-size:34px}.login-subtitle{margin-bottom:26px}.login-topline{font-size:10px}.login-form-wrap>.login-kicker{display:none}.login-form #web-login-error{margin-bottom:12px}.login-trust{margin-top:27px}.login-footer{max-width:420px;width:100%;align-self:center;font-size:8px}}
@media(prefers-reduced-motion:reduce){.login-page *{transition:none!important}}
