/* Login landing page. Keep the ICP footer positioning in index.html. */
:root{--entry-font-family:ui-sans-serif,system-ui,-apple-system,"Microsoft YaHei",sans-serif;--entry-font-weight:400}
html:has(.identity-mode),body:has(.identity-mode){height:auto;overflow:auto}
body:has(.identity-mode){background:#f7f9f5!important}
main.identity-mode{height:auto;max-height:none;padding:0!important;border:0;background:#f7f9f5!important;overflow:visible}
.identity-mode:before,.identity-mode>h1,.identity-mode>#notice{display:none}
.identity-mode #identity{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(360px,1fr);grid-template-rows:auto 1fr auto;column-gap:clamp(32px,4vw,64px);row-gap:50px;min-height:100vh;min-height:100dvh;height:auto;padding:30px 5vw 38px;color:#102d37}
.home-header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px}
.home-brand{display:flex;align-items:center;gap:14px;color:#102d37;text-decoration:none}
.home-brand-mark{width:60px;height:54px;flex:none}
.home-brand strong{display:block;font-size:clamp(18px,1.55vw,24px);line-height:1.4;letter-spacing:.12em}
.home-brand span{display:block;margin-top:1px;font-size:11px;letter-spacing:.42em}
.home-nav{display:flex;gap:48px}
.home-nav button{min-width:0;margin:0;padding:8px 0;border-radius:0;background:none;color:#243f4b;font-size:17px;font-weight:500;box-shadow:none}
.home-nav button:hover{color:#087b70;transform:none;box-shadow:none}
.home-nav button:focus-visible,.home-help-link:focus-visible{outline:2px solid #137b70;outline-offset:5px}
#identity .home-intro{padding:0;min-width:0;min-height:0;overflow:visible;background:none}
.home-eyebrow{margin:0 0 16px;color:#34757a;font-size:12px;letter-spacing:.42em;line-height:1.6}
#identity .home-intro h2{margin:0;color:#102b34;font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:clamp(40px,4.65vw,72px);font-weight:850;line-height:1.23;letter-spacing:0}
.home-intro h2 span{color:#11796e}
#identity .home-intro .home-subtitle{margin:20px 0 0;color:#425863;font-size:clamp(17px,1.65vw,25px);line-height:1.65}
.home-orbit-art{display:block;width:calc(100% + 32px);height:auto;min-height:0;max-height:390px;aspect-ratio:2/1;object-fit:contain;margin:4px -16px 0;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse farthest-side,#000 72%,transparent 100%)}
.home-features{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:auto;padding:20px 22px 0;list-style:none;margin-bottom:0;color:#163743}
.home-features li{display:flex;align-items:center;justify-content:center;gap:20px;flex:1;white-space:nowrap;font-size:18px;line-height:1.5}
.home-features li+li{border-left:1px solid #d3dedb}
.home-features svg{width:35px;height:35px;flex:none;fill:none;stroke:#07655f;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#identity .home-login-pane{display:flex;align-items:center;justify-content:center;min-width:0;padding:0;background:none}
#identity .home-login-card{width:100%;max-width:540px;margin:0;padding:46px 40px 30px;border:1px solid #c2dcca;border-radius:24px;background:#ffffffed;box-shadow:0 12px 30px #315f4210}
#identity .home-login-card h2{margin:0;color:#102d37;font-size:36px;font-weight:800;line-height:1.35}
#identity .home-login-card>.home-card-subtitle{margin:5px 0 28px;color:#6b7a86;font-size:20px;line-height:1.6}
#identity .role-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 30px;padding:5px;border-radius:13px;background:#eaf0e9}
#identity .role-switch button{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;min-width:0;height:56px;margin:0;padding:8px;border:0;border-radius:9px;background:none;color:#465c68;font-size:18px;font-weight:600;box-shadow:none}
#identity .role-switch button:hover{background:#ffffff88;transform:none}
#identity .role-switch button.active{background:#fff;color:#087467;box-shadow:0 2px 8px #294f3d0a}
#identity .role-switch button:focus-visible{outline:2px solid #167c70;outline-offset:1px}
#identity #home-teacher-role:after{content:none}
.home-role-icon{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#identity .role-switch .home-role-icon{fill:none}
#identity .role-switch button.active .home-role-icon{fill:currentColor}
#identity .home-login-card label{margin:0;color:#203e49;font-size:17px;font-weight:500;line-height:1.6;letter-spacing:0}
#identity .home-login-card input{height:56px;margin:7px 0 0;padding:12px 19px;border:1px solid #ced7d5;border-radius:10px;background:#fff;color:#193943;font-size:18px;box-shadow:none}
#identity .home-login-card input::placeholder{color:#9aa5ac}
#identity .home-login-card input:focus{border-color:#148477;box-shadow:0 0 0 3px #14847718}
.home-password-label{display:block;margin-top:24px!important}
#identity .password-field input{padding-right:54px}
#identity .password-toggle{top:11px;right:8px;bottom:4px;color:#71818c}
#identity .password-toggle:hover{background:#edf5ef;color:#087467}
#identity .password-toggle:focus-visible{outline-color:#148477}
#identity .home-login-card .home-login-button{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:62px;margin:32px 0 0;padding:0 48px;border:1px solid #087568;border-radius:11px;background:linear-gradient(115deg,#138476,#08776b);color:#fff;font-size:22px;font-weight:700;letter-spacing:.03em;box-shadow:inset 0 1px 2px #ffffff26}
#identity .home-login-button:hover{background:#086b60;transform:none;box-shadow:0 4px 12px #0b756f20}
#identity .home-login-button svg{position:absolute;right:26px;width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#identity .home-login-card>.home-account-hint{margin:15px 0 0;color:#76838b;font-size:16px;line-height:1.6;text-align:center}
#identity .home-login-note{margin:0;color:#b2473c;font-size:14px}
#identity .home-login-note:empty{display:none}
#identity .home-login-note:not(:empty){margin-top:12px}
#identity .home-login-footer{display:block;margin:26px 0 0;padding-top:21px;border-top:1px solid #d6dfdb;color:#78858f;font-size:15px;line-height:1.7;text-align:center}
.home-help-link{min-width:0;margin:0;padding:0;border-radius:0;background:none;color:#14786c;font-size:inherit;font-weight:500;text-decoration:underline;text-underline-offset:3px;box-shadow:none}
.home-help-link:hover{color:#064e45;transform:none;box-shadow:none}
.home-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;padding-top:18px;border-top:1px solid #d1dcd7;color:#687b83;font-size:14px;line-height:1.5}
.home-bottom p{margin:0;letter-spacing:.06em}
.home-info-dialog{width:min(560px,calc(100% - 40px));max-height:85vh;padding:30px;border:1px solid #c2dcca;border-radius:18px;background:#fff;color:#425863;box-shadow:0 24px 80px #102d3730}
.home-info-dialog::backdrop{background:#102d3766;backdrop-filter:blur(4px)}
.home-info-dialog h2{margin:0 0 14px;color:#0b635b;font-size:25px}
.home-info-dialog p{margin:10px 0;font-size:16px;line-height:1.8}
.home-info-dialog .home-dialog-close{display:block;width:100%;margin:24px 0 0;background:#10796d;box-shadow:none}
@media(min-width:1001px) and (max-height:850px){
  .identity-mode #identity{row-gap:28px;padding-top:22px;padding-bottom:52px}
  #identity .home-intro h2{font-size:clamp(38px,4.1vw,62px)}
  #identity .home-intro .home-subtitle{margin-top:14px;font-size:20px}
  .home-orbit-art{max-height:300px}
  #identity .home-login-card{padding:30px 32px 25px}
  #identity .home-login-card h2{font-size:30px}
  #identity .home-login-card>.home-card-subtitle{margin-bottom:20px;font-size:17px}
  #identity .role-switch{margin-bottom:20px}
  #identity .role-switch button{height:45px;font-size:16px}
  #identity .home-login-card input{height:48px;font-size:16px}
  .home-password-label{margin-top:18px!important}
  #identity .home-login-card .home-login-button{height:52px;margin-top:24px;font-size:19px}
  #identity .home-login-card>.home-account-hint{font-size:14px}
  #identity .home-login-footer{margin-top:20px;padding-top:16px;font-size:14px}
  .home-features{padding-top:12px}
  .home-features li{font-size:16px;gap:12px}
}
@media(max-width:1000px){
  .identity-mode #identity{grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);gap:32px 28px;padding-right:4vw;padding-left:4vw}
  .home-nav{gap:24px}
  .home-nav button{font-size:15px}
  #identity .home-intro h2{font-size:clamp(30px,4.5vw,46px)}
  #identity .home-intro .home-subtitle{font-size:17px}
  .home-eyebrow{font-size:10px;letter-spacing:.28em}
  #identity .home-login-card{padding:30px 24px}
  #identity .home-login-card h2{font-size:29px}
  #identity .home-login-card>.home-card-subtitle{font-size:16px}
  #identity .role-switch button{gap:10px;font-size:16px}
  .home-features{gap:10px;padding:20px 0 0}
  .home-features li{flex-direction:column;gap:8px;font-size:14px}
}
@media(max-width:720px){
  .identity-mode #identity{grid-template-columns:1fr;gap:28px;min-height:0;padding:22px 22px 20px}
  .home-header{align-items:flex-start;gap:14px}
  .home-brand{gap:8px}
  .home-brand-mark{width:38px;height:40px}
  .home-brand strong{font-size:16px;letter-spacing:.05em}
  .home-brand span{font-size:8px;letter-spacing:.3em}
  .home-nav{gap:14px;flex:none}
  .home-nav button{padding:6px 0;font-size:12px}
  #identity .home-intro{min-height:0;padding:8px 0 0}
  .home-eyebrow{margin-bottom:12px}
  #identity .home-intro h2{font-size:clamp(29px,6.9vw,46px)}
  #identity .home-intro .home-subtitle{margin-top:14px;font-size:16px}
  .home-orbit-art{width:calc(100% + 20px);margin:8px -10px 0;max-height:280px}
  .home-features{padding-top:8px}
  .home-features li{flex-direction:row;gap:8px;font-size:13px}
  .home-features svg{width:25px;height:25px}
  #identity .home-login-pane{padding:0}
  #identity .home-login-card{max-width:480px;padding:30px 24px 25px;border-radius:20px}
  #identity .home-login-card h2{font-size:28px}
  #identity .home-login-card>.home-card-subtitle{margin-bottom:22px}
  #identity .role-switch{margin-bottom:24px}
  #identity .role-switch button{height:46px}
  #identity .home-login-card input{height:50px;font-size:16px}
  #identity .home-login-card label{font-size:15px}
  .home-password-label{margin-top:20px!important}
  #identity .home-login-card .home-login-button{height:52px;margin-top:26px;font-size:18px}
  #identity .home-login-card>.home-account-hint{font-size:13px}
  #identity .home-login-footer{margin-top:22px;padding-top:18px;font-size:13px}
  .home-bottom{flex-direction:column;gap:6px;padding-top:16px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){#identity *{transition:none!important}}

/* Confirmed PC reference: airy canvas, science illustration and a single card. */
body:has(.identity-mode),main.identity-mode{background:#fcfdfa!important}
.home-nav,.home-eyebrow,.home-bottom,#identity .home-login-footer{display:none}
.home-brand span{color:#858ba0}
.home-features li:nth-child(2) span,.home-features li:nth-child(3) span{font-size:0}
.home-features li:nth-child(2) span:after{content:"创新表达";font-size:clamp(16px,1.65vw,25px)}
.home-features li:nth-child(3) span:after{content:"发现潜能";font-size:clamp(16px,1.65vw,25px)}
#identity .home-login-card{border-color:#dce4e5;background:#ffffffed;box-shadow:0 12px 40px #23483908}
#identity .role-switch{background:#f4f5f2}
#identity .home-login-card .home-login-button{background:linear-gradient(115deg,#327e73,#176b60)}
@media(min-width:1001px){
 .identity-mode #identity{position:relative;grid-template-columns:minmax(0,1.48fr) minmax(0,1fr);grid-template-rows:72px 1fr;gap:46px 44px;padding:10vh 4.2vw 10vh 6.8vw;min-height:100vh}
 .home-header{grid-column:1;align-self:start}
 .home-brand-mark{width:74px;height:64px}
 .home-brand strong{font-size:28px;letter-spacing:.1em}
 .home-brand span{font-size:12px;letter-spacing:.3em}
 #identity .home-intro{align-self:center;position:relative}
 #identity .home-intro h2{font-size:clamp(58px,6.5vw,100px);font-weight:900;letter-spacing:.015em;line-height:1.2;color:#052c36}
 #identity .home-intro .home-subtitle{margin:20px 0 0;font-size:clamp(19px,2.1vw,32px);font-weight:500;color:#7b8093;white-space:nowrap;letter-spacing:.035em}
 .home-orbit-art{width:calc(100% + 100px);max-height:none;height:clamp(290px,29vw,445px);aspect-ratio:auto;object-fit:fill;margin:-5px -50px 0}
 .home-features{margin:8px -5px 0;padding:12px 0 0}
 .home-features li{gap:22px;font-size:clamp(16px,1.65vw,25px)}
 .home-features svg{width:42px;height:42px}
 #identity .home-login-pane{grid-column:2;grid-row:1/3;align-self:end}
 #identity .home-login-card{max-width:540px;padding:44px 43px 58px;border-radius:24px}
 #identity .home-login-card h2{font-size:44px;line-height:1.35}
 #identity .home-login-card>.home-card-subtitle{font-size:28px;margin:0 0 26px;color:#7b8093}
 #identity .role-switch{margin-bottom:26px}
 #identity .role-switch button{height:64px;font-size:22px}
 .home-role-icon{width:32px;height:32px}
 #identity .home-login-card label{font-size:21px}
 #identity .home-login-card input{height:64px;margin-top:10px;font-size:22px}
 .home-password-label{margin-top:24px!important}
 #identity .home-login-card .home-login-button{height:72px;margin-top:32px;font-size:28px}
 #identity .home-login-card>.home-account-hint{margin-top:18px;font-size:19px;white-space:nowrap}
}
@media(min-width:1001px) and (max-height:850px){
 .identity-mode #identity{padding-top:6vh;padding-bottom:6vh;gap:20px 40px}
 #identity .home-login-card{padding:30px 32px}
 #identity .home-login-card h2{font-size:34px}
 #identity .home-login-card>.home-card-subtitle{font-size:22px;margin-bottom:18px}
 #identity .role-switch{margin-bottom:18px}
 #identity .role-switch button{height:48px;font-size:18px}
 #identity .home-login-card input{height:52px;font-size:18px}
 #identity .home-login-card .home-login-button{height:56px;margin-top:24px;font-size:23px}
 #identity .home-login-card>.home-account-hint{font-size:15px}
 .home-orbit-art{height:300px}
}
@media(max-width:720px){.home-features li:nth-child(2) span:after,.home-features li:nth-child(3) span:after{font-size:13px}}
