:root{
  color-scheme:light;
  --bg:#f7f6f2;--surface:#fbfaf7;--ink:#272521;--muted:#7f7a71;--faint:#aaa49a;
  --line:#ddd9d0;--line-soft:#ebe7df;--danger:#a54f43;
  --radius-sm:10px;--radius-md:14px;--shadow-1:0 1px 2px rgba(35,31,26,.04);
  --ease:cubic-bezier(.2,.72,.25,1);--fast:120ms;--ui:180ms;
  --font-ui:ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --font-display:ui-serif,"New York","Songti SC","STSong",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{min-height:100dvh;-webkit-font-smoothing:antialiased}
.login-shell{min-height:100dvh;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}
.login-card{width:min(356px,100%);text-align:center;animation:enter var(--ui) var(--ease) both}
.brand{margin-bottom:42px;font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-1.2px}
.login-card h1{margin:0 0 10px;font-family:var(--font-display);font-size:32px;line-height:1.12;font-weight:520;letter-spacing:-.7px}
.sub{margin:0 0 26px;color:var(--muted);font-size:14px;line-height:1.55}
.field{display:block}.field input{width:100%;height:48px;border:1px solid var(--line);border-radius:var(--radius-md);outline:0;background:var(--surface);padding:0 14px;color:var(--ink);box-shadow:var(--shadow-1);transition:border-color var(--fast) ease,box-shadow var(--fast) ease,background-color var(--fast) ease}
.field input::placeholder{color:var(--faint)}
.field input:focus-visible{border-color:#aaa59a;box-shadow:0 0 0 3px rgba(74,69,61,.08);background:#fff}
.error{min-height:20px;margin:9px 0 5px;color:var(--danger);font-size:12px;text-align:left}
.login-card button{width:100%;min-height:46px;border:0;border-radius:var(--radius-md);background:var(--ink);color:#fff;font-weight:650;cursor:pointer;touch-action:manipulation;transition:opacity var(--fast) ease,transform var(--fast) var(--ease)}
.login-card button:active{transform:scale(.985)}
.login-card button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media (hover:hover) and (pointer:fine){.login-card button:hover{opacity:.91}}
@media(max-width:480px){.login-shell{place-items:start center;padding-top:max(20vh,env(safe-area-inset-top))}.brand{margin-bottom:36px}.login-card h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
