/* auth.css — 从 public/auth.html 的 <style> 块外链化（P2 前端拆分，内容逐字节照搬）
 * 为什么外链：页面标记与样式分离；CSP 的 style-src 只服务行内 style 属性（'unsafe-inline' 仍需要），
 * 但"页面里嵌一大段 CSS"从此不再和标记混在一起。改样式只动这个文件，页面 diff 干净。 */
  :root{
    --bg:#0d1117; --panel:#161b22; --panel2:#1c2432; --line:#212a38;
    --txt:#dbe4ee; --sub:#8a94a6; --accent:#58a6ff; --up:#f85149; --down:#3fb950; --warn:#e3b341;
  }
  *{box-sizing:border-box;}
  :focus-visible{outline:2px solid var(--accent) !important; outline-offset:2px;}
  @media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none !important; transition:none !important; scroll-behavior:auto !important;}}
  /* 浅色主题（与看板同键 dsh_theme） */
  html[data-theme="light"]{
    color-scheme: light;
    --bg:#f5f7fa; --panel:#ffffff; --panel2:#eef1f5; --line:#d4dae3;
    --txt:#1b1f24; --sub:#59636e; --accent:#0a66c2; --up:#c9302c; --down:#1a7f37; --warn:#9a6700;
  }
  html[data-theme="light"] body{background:radial-gradient(1200px 600px at 50% -10%, #dbe7f5 0%, var(--bg) 60%);}
  html[data-theme="light"] input{background:#ffffff;}
  html[data-theme="light"] .tabs button.on{background:#d7e7fb; border-color:#0a66c288; color:#0a4d94;}
  html[data-theme="light"] .btn{background:#d7e7fb; border-color:#0a66c266; color:#0a4d94;}
  html[data-theme="light"] .btn:hover{background:#c3dcf7;}
  html[data-theme="light"] .msg.err{background:#ffebe9; border-color:#c9302c55; color:#c9302c;}
  html[data-theme="light"] .msg.ok{background:#e6ffec; border-color:#1a7f3755; color:#1a7f37;}
  html[data-theme="light"] .note code{background:#eef1f5; color:#0a4d94;}
  body{margin:0; min-height:100vh; background:radial-gradient(1200px 600px at 50% -10%, #16233a 0%, var(--bg) 60%);
       color:var(--txt); font-family:"Microsoft YaHei","PingFang SC","Segoe UI",system-ui,sans-serif;
       display:flex; align-items:center; justify-content:center; padding:24px;}
  .card{width:100%; max-width:420px; background:var(--panel); border:1px solid var(--line); border-radius:16px;
        box-shadow:0 18px 50px rgba(0,0,0,.45); overflow:hidden;}
  .hd{padding:22px 24px 14px;}
  .hd h1{margin:0; font-size:19px; letter-spacing:.5px; display:flex; align-items:center; gap:8px;}
  .hd p{margin:6px 0 0; color:var(--sub); font-size:12.5px; line-height:1.6;}
  .tabs{display:flex; gap:6px; padding:0 24px;}
  .tabs button{flex:1; background:var(--panel2); border:1px solid var(--line); color:var(--sub);
        padding:9px 0; border-radius:10px; cursor:pointer; font-size:13.5px; transition:.15s;}
  .tabs button.on{background:#1f3a5f; border-color:#58a6ff88; color:#cfe3ff; font-weight:600;}
  .body{padding:16px 24px 22px;}
  label{display:block; font-size:12.5px; color:var(--sub); margin:12px 0 6px;}
  input{width:100%; padding:11px 13px; background:#0d1117; color:var(--txt); border:1px solid var(--line);
        border-radius:10px; font-size:14.5px; outline:none; font-family:inherit;}
  input:focus{border-color:#58a6ff88; box-shadow:0 0 0 3px #58a6ff22;}
  .row{display:flex; gap:10px; margin-top:18px;}
  .btn{flex:1; padding:11px 0; border-radius:10px; border:1px solid #58a6ff66; background:#1f3a5f; color:#dceaff;
       font-size:14.5px; font-weight:600; cursor:pointer; transition:.15s;}
  .btn:hover{background:#25497a;}
  .btn:disabled{opacity:.6; cursor:default;}
  .msg{margin-top:14px; padding:10px 12px; border-radius:10px; font-size:12.5px; line-height:1.6; display:none;}
  .msg.err{display:block; background:#2d1418; border:1px solid #f8514955; color:#ffa198;}
  .msg.ok{display:block; background:#12281a; border:1px solid #3fb95055; color:#7ee2a8;}
  .note{margin-top:16px; padding-top:14px; border-top:1px solid var(--line); color:var(--sub); font-size:12px; line-height:1.75;}
  .note code{background:#0d1117; border:1px solid var(--line); border-radius:5px; padding:1px 6px; color:#cfe3ff;}
  .pwhint{margin-top:6px; font-size:12px; line-height:1.5; display:none;}
  .pwhint.warn{display:block; color:#ffa198;}
  .pwhint.ok{display:block; color:#7ee2a8;}
  .hide{display:none !important;}
  /* ---- 登录/注册页本轮新增（原来这几处是 HTML 内联 style / 内联 on*，P2 起不许留在标记里） ---- */
  .themebtn{float:right; background:var(--panel2); border:1px solid var(--line); color:var(--txt);
        border-radius:8px; padding:5px 12px; cursor:pointer; font-size:13px;}
  .pwwrap{display:flex; gap:8px; align-items:stretch;}
  .pwwrap input{flex:1; min-width:0;}
  .pwbtn{white-space:nowrap; background:var(--panel2); border:1px solid var(--line); color:var(--sub);
        border-radius:10px; padding:0 12px; cursor:pointer; font-size:12.5px; font-family:inherit;}
  .pwbtn:hover{color:var(--txt); border-color:#58a6ff88;}
  .chk{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--sub);
        margin:14px 0 0; cursor:pointer;}
  .chk input{width:auto; margin:0; flex:none;}
  .caps{display:none; margin-top:6px; font-size:12px; color:var(--warn);}
  .caps.on{display:block;}
  html[data-theme="light"] .pwbtn{color:var(--txt);}
