/* auth.css — 无外部字体依赖 */
:root{
  --ink:#0d0d0d;--paper:#f5f0e8;--cream:#ede8dc;
  --accent:#e84c1e;--muted:#7a7060;--border:#d4cfc3;--card:#faf7f2;
  --font-zh:'PingFang SC','Microsoft YaHei','Noto Sans SC','Source Han Sans SC',sans-serif;
  --font-en:'Helvetica Neue',Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font-en);background:var(--paper);color:var(--ink);min-height:100vh;display:flex;align-items:center;justify-content:center}
a{color:var(--accent);text-decoration:none}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.auth-page{min-height:100vh;align-items:center;justify-content:center;display:flex}
.auth-container{width:100%;max-width:440px;padding:20px}
.auth-brand{text-align:center;margin-bottom:24px}
.auth-logo{font-weight:900;font-size:1.3rem;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-zh)}
.auth-logo .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block}
.auth-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:36px;box-shadow:0 8px 40px rgba(0,0,0,.08)}
.auth-header{text-align:center;margin-bottom:28px}
.auth-header h1{font-size:1.6rem;font-weight:900;letter-spacing:-.02em;margin-bottom:6px;font-family:var(--font-zh)}
.auth-header p{font-size:.9rem;color:var(--muted)}
.form-group{margin-bottom:18px}
.form-label{display:block;font-size:.875rem;font-weight:600;margin-bottom:6px;color:var(--ink)}
.required{color:#dc2626;margin-left:2px}
.form-input{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:8px;background:var(--paper);font-size:.95rem;outline:none;transition:border-color .2s,box-shadow .2s}
.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,76,30,.1)}
.form-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;font-size:.875rem}
.form-check{display:flex;align-items:center;gap:8px;cursor:pointer}
.form-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.forgot-link{color:var(--muted);font-size:.875rem}
.forgot-link:hover{color:var(--ink)}
.btn-auth{width:100%;padding:13px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s,transform .15s;margin-top:4px}
.btn-auth:hover:not(:disabled){background:#c73d14;transform:translateY(-1px)}
.btn-auth:disabled{opacity:.6;cursor:not-allowed}
.auth-footer{text-align:center;margin-top:20px;font-size:.9rem;color:var(--muted)}
.auth-demo-hint{margin-top:20px;padding:12px;background:var(--cream);border-radius:8px;text-align:center;font-size:.8rem;color:var(--muted)}
.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{padding:12px 20px;border-radius:10px;font-size:.9rem;font-weight:500;box-shadow:0 8px 32px rgba(0,0,0,.15);pointer-events:all;display:flex;align-items:center;gap:8px;max-width:360px;animation:toastIn .3s ease;background:#fff}
.toast-success{border-left:4px solid #16a34a}
.toast-error{border-left:4px solid #dc2626}
@keyframes toastIn{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
@media(max-width:480px){.auth-card{padding:24px 20px}}