/* Auth surface: quiet warmth, clear reading order, and generous touch targets. */
.auth-page{
  --auth-forest:#36553e;
  --auth-forest-deep:#294632;
  --auth-paper:#f7f5ef;
  background:radial-gradient(ellipse at 12% 4%,#e3eadd 0,transparent 46%),radial-gradient(ellipse at 93% 96%,#eee7d9 0,transparent 44%),var(--auth-paper);
  padding:clamp(24px,5vh,64px) 32px;
  min-height:100svh;
}
.auth-shell{
  max-width:1120px;
  min-height:700px;
  grid-template-columns:1.06fr 1fr;
  border:1px solid #deded3;
  border-radius:28px;
  box-shadow:0 28px 80px #34442b12,0 3px 12px #34442b06;
  animation:auth-arrive .4s ease both;
}
.auth-story{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:42px 44px 34px;
  background:linear-gradient(145deg,#3b5d44 0%,#2d4935 100%);
  color:#f7f7ed;
}
.auth-story::before{
  content:"";
  position:absolute;
  width:340px;
  height:340px;
  top:-215px;
  right:-70px;
  border:1px solid #c9d8b92e;
  border-radius:50%;
  box-shadow:0 0 0 35px #c9d8b908,0 0 0 70px #c9d8b905;
  z-index:-1;
  pointer-events:none;
}
.auth-story .brand{color:#f5f5e8;font-size:31px;gap:14px;position:relative;z-index:1}
.auth-story .brand span{color:#d0dac8;border-color:#8ca283;font-size:12px}
.auth-story .brand:focus-visible{outline-color:#e5eddb}
.auth-story-copy{position:relative;z-index:1;padding:44px 0 30px}
.auth-story .eyebrow{color:#cad8bd;font-size:11px;letter-spacing:3px;margin:0 0 22px;display:flex;align-items:center;gap:12px}
.auth-story .eyebrow::before{content:"";height:1px;width:25px;background:#b6caa7;flex-shrink:0}
.auth-story h1{font-family:"STZhongsong","Songti SC","SimSun",serif;font-size:clamp(32px,3.4vw,43px);font-weight:500;line-height:1.65;letter-spacing:1px;margin:0 0 24px;color:#faf8ee}
.auth-story-copy>p:not(.eyebrow){color:#d5dfce;font-size:14px;line-height:1.95;margin-bottom:0}
.auth-story .story-card{align-items:center;gap:16px;margin-top:34px;padding:17px 18px;background:#e8eed90c;border-color:#cedbbc38;border-radius:15px;max-width:350px}
.auth-story .story-card strong{font-size:14px;font-weight:500;color:#f4f5e9;letter-spacing:.3px}
.auth-story .story-card p{color:#c6d3bd;font-size:12px;line-height:1.8;margin:5px 0 0}
.auth-story .story-icon{background:#d8e3c8;color:#36513b;width:44px;height:44px;flex:0 0 44px;border-radius:13px;font-family:"STZhongsong","Songti SC","SimSun",serif;font-size:22px}
.auth-story>small{color:#c7d4bf;font-size:11px;letter-spacing:1px;position:relative;z-index:1}
.auth-home-art{position:absolute;width:290px;height:290px;right:-43px;bottom:1px;color:#d8e4c9;opacity:.14;z-index:0;pointer-events:none}
.auth-home-art svg{display:block;width:100%;height:100%}
.auth-panel{padding:42px 54px 44px;background:#fff;min-width:0}
.auth-tabs{gap:28px;margin-bottom:34px;border-bottom-color:#e7e8df}
.auth-tabs button{position:relative;border-bottom:0!important;padding:7px 0 15px;color:#69735f;font-size:15px;min-height:46px;transition:color .16s ease}
.auth-tabs button.active{color:var(--auth-forest);font-weight:600}
.auth-tabs button.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--auth-forest);border-radius:3px 3px 0 0}
.auth-panel h2{font-size:28px;font-weight:600;letter-spacing:.3px;color:#263b2b;margin-bottom:9px;line-height:1.4}
.auth-panel #authSubtitle{font-size:13px;line-height:1.8;color:#69735f;max-width:100%;margin-bottom:0}
.auth-panel form{margin-top:28px}
.auth-panel label{font-size:14px;font-weight:500;color:#41483d;gap:9px;margin-bottom:18px}
.auth-panel input{min-height:50px;border-radius:11px;border-color:#daddd2;background:#fbfcf8;font-size:15px;padding:11px 14px;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}
.auth-panel input:hover{border-color:#b7c3ae}
.auth-panel input:focus{outline:0;border-color:#54734b;background:#fff;box-shadow:0 0 0 3px #65845618}
.auth-panel input:focus-visible{outline:2px solid #54734b;outline-offset:2px}
.auth-panel input:user-invalid{border-color:#b55b47}
.auth-panel input:disabled{background:#f2f3ed;color:#727969}
.auth-panel .password-field{margin-bottom:18px}
.auth-panel .password-field label{margin-bottom:0}
.auth-panel .password-field input{padding-right:78px}
.auth-panel .password-toggle{right:4px;bottom:3px;color:var(--auth-forest);border-radius:8px;font-size:12px;min-width:62px;min-height:44px}
.auth-panel .password-toggle:hover{background:#edf2e7}
.auth-panel .primary{margin-top:8px;min-height:50px;border-radius:11px;background:var(--auth-forest);box-shadow:0 4px 10px #36553e12;font-size:15px;letter-spacing:1px;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}
.auth-panel .primary:active{transform:translateY(1px);box-shadow:none}
.auth-panel button:disabled{cursor:not-allowed;opacity:.58}
.auth-panel [aria-busy="true"] button:disabled{cursor:wait}
.auth-panel .text-button{color:var(--auth-forest);min-height:44px}
.auth-panel .auth-help{min-height:24px;font-size:13px;line-height:1.85;margin:15px 0 0;color:#69735f}
.auth-panel #forgotPassword{font-size:13px;justify-content:flex-start}
.auth-panel #backToLogin{font-size:13px;margin-top:11px}
.auth-panel #passwordHelp{font-size:12px;margin-top:-5px;line-height:1.7}
.auth-panel .device-entry{position:relative;display:flex;align-items:center;gap:12px;margin-top:29px;padding-top:22px;border-top-color:#e7e9df;min-height:49px;font-size:13px;line-height:1.8;color:#4b6245;overflow-wrap:anywhere}
.auth-panel .device-entry::before{content:"";display:block;width:17px;height:21px;border:1.5px solid #6f8764;border-radius:4px;box-shadow:inset 0 -4px 0 #edf2e7;flex:0 0 17px}
.auth-panel .error{font-size:13px;line-height:1.8;padding:12px 14px;margin:0 0 22px;background:#fff6f1;border-color:#edcbbd;white-space:pre-wrap;overflow-wrap:anywhere}
.auth-panel .error:focus{outline:2px solid #a4523e;outline-offset:3px}
.auth-panel .sms-code-row{gap:9px;margin-top:0}
.auth-panel #smsField>label{margin-bottom:9px}
.auth-panel .sms-code-row button{min-height:50px;border-radius:11px;background:#f3f6ed;border-color:#d9e0d0;color:#3d5d3f;font-size:12px;padding:10px 13px}
.auth-panel #smsStatus{font-size:12px;line-height:1.75;color:#6b7661;margin-top:9px;overflow-wrap:anywhere}
@media(hover:hover){.auth-panel .primary:not(:disabled):hover{background:var(--auth-forest-deep);box-shadow:0 5px 14px #36553e22;transform:translateY(-1px)}.auth-tabs button:not(:disabled):hover{color:var(--auth-forest)}.auth-panel .device-entry:hover{color:#2e4f31}.auth-panel .text-button:not(:disabled):hover{text-decoration:underline;text-underline-offset:4px}}
@media(min-width:741px) and (max-width:980px){.auth-page{padding:24px}.auth-shell{min-height:670px;grid-template-columns:1fr 1fr}.auth-story{padding:34px 30px}.auth-panel{padding:36px 30px}.auth-story h1{font-size:33px}.auth-story .story-card{padding:15px 13px;gap:12px}.auth-home-art{right:-72px;width:280px}}
@media(max-width:740px){
  .auth-page{padding:24px 16px;display:block}
  .auth-shell{display:block;min-height:0;max-width:480px;margin:auto;border-radius:22px}
  .auth-story{padding:23px 26px;min-height:90px;display:flex;justify-content:center}
  .auth-story .brand{font-size:28px;gap:12px}
  .auth-story .brand span{font-size:11px}
  .auth-story::before{width:200px;height:200px;top:-152px;right:-8px;box-shadow:0 0 0 24px #c9d8b908,0 0 0 48px #c9d8b905}
  .auth-story>div,.auth-story>small{display:none}
  .auth-panel{padding:30px 28px 28px}
  .auth-tabs{margin-bottom:28px}
  .auth-panel h2{font-size:26px}
  .auth-panel form{margin-top:24px}
  .auth-panel input,.auth-panel textarea,.auth-panel select{font-size:16px}
}
@media(max-width:380px){
  .auth-page{padding:14px 12px}
  .auth-shell{border-radius:19px}
  .auth-story{padding:21px 22px;min-height:84px}
  .auth-story .brand{font-size:26px}
  .auth-story .brand span{font-size:10px;padding-left:11px;letter-spacing:.5px}
  .auth-panel{padding:25px 22px}
  .auth-tabs{gap:26px;margin-bottom:25px}
  .auth-panel h2{font-size:24px}
  .auth-panel label{font-size:13px}
  .auth-panel .sms-code-row{gap:7px}
  .auth-panel .sms-code-row button{padding:10px 9px;font-size:11px}
  .auth-panel .device-entry{font-size:13px;gap:10px;margin-top:24px}
}
@keyframes auth-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.auth-shell{animation:none}.auth-panel input,.auth-panel .primary,.auth-tabs button{transition:none}.auth-panel .primary:not(:disabled):hover,.auth-panel .primary:active{transform:none}}

/* Identity entrances share the existing palette and keep each destination explicit. */
.auth-entry-label{font-size:12px;color:#66735e;margin:0 0 11px;letter-spacing:.4px}
.auth-identities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:25px}
.auth-identity{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:14px 10px 12px;border:1px solid #dfe4d6;border-radius:12px;background:#fbfcf8;color:#66735e;min-width:0;transition:background .16s,border-color .16s}
.auth-identity svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:3px}
.auth-identity strong{font-size:14px;color:#3b4f37;font-weight:600}
.auth-identity span{font-size:10px;line-height:1.6;letter-spacing:0;overflow-wrap:anywhere}
.auth-identity[aria-current="page"]{background:#edf3e5;border-color:#78936d;color:#36553e;box-shadow:inset 0 0 0 1px #78936d24}
.auth-identity[aria-current="page"] strong{color:#294632}
.auth-identity:hover{border-color:#8ca17e;background:#f0f4e9}
.auth-identity:focus-visible{outline:2px solid #54734b;outline-offset:3px}
.auth-identity[aria-disabled="true"]{pointer-events:none;opacity:.6}
.auth-panel .auth-tabs{margin-bottom:25px}
.auth-panel:has(.auth-tabs[hidden]) .auth-identities{margin-bottom:28px}
.auth-panel #authTitle{font-size:26px}
@media(max-width:740px){.auth-identities{gap:8px;margin-bottom:23px}.auth-identity{padding:12px 9px}.auth-panel{padding-top:25px}.auth-identity span{font-size:10px}.auth-panel #authTitle{font-size:24px}}
@media(max-width:380px){.auth-identities{gap:6px}.auth-identity{padding:11px 7px;gap:4px}.auth-identity strong{font-size:13px}.auth-identity span{font-size:10px}.auth-identity svg{width:20px;height:20px}}
@media(prefers-reduced-motion:reduce){.auth-identity{transition:none}}
