/* ===== 账号：顶栏入口、菜单、登录弹层 =====
   配色沿用 style.css 的变量，不另起一套蓝。 */

.auth-chip{
  border:1px solid var(--line);background:#fff;border-radius:11px;
  padding:9px 13px;color:#61708a;font-size:12px;font-weight:700;
  max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  transition:.18s;
}
.auth-chip:hover{border-color:#c7d9f7;color:var(--blue)}
.auth-chip.signed-in{background:var(--blue-soft);border-color:#cfe0fd;color:var(--blue)}

.auth-menu{
  position:fixed;z-index:1200;min-width:186px;background:#fff;
  border:1px solid var(--line);border-radius:14px;padding:8px;
  box-shadow:0 16px 40px rgba(32,65,120,.16);
}
.auth-menu-head{font-size:13px;font-weight:800;color:var(--ink);padding:8px 10px 2px}
.auth-menu-sub{font-size:11px;color:var(--muted);padding:0 10px 10px;line-height:1.5}
.auth-menu button{
  display:block;width:100%;text-align:left;border:0;background:transparent;
  padding:9px 10px;border-radius:9px;font-size:13px;color:#41506b;
}
.auth-menu button:hover{background:var(--bg)}
.auth-menu button.danger{color:#b91c1c}
.auth-menu button.danger:hover{background:#fdecec}

/* ---- 弹层 ---- */
.auth-mask{
  position:fixed;inset:0;z-index:1300;background:rgba(23,35,61,.42);
  display:flex;align-items:center;justify-content:center;padding:24px;
  backdrop-filter:blur(2px);
}
.auth-mask[hidden]{display:none}

.auth-card{
  position:relative;width:100%;max-width:404px;background:#fff;border-radius:20px;
  padding:26px 26px 22px;box-shadow:0 24px 70px rgba(20,40,80,.28);
  animation:authIn .18s ease-out;
}
@keyframes authIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.auth-close{
  position:absolute;top:12px;right:14px;border:0;background:transparent;
  font-size:22px;line-height:1;color:#9aa6b8;padding:4px 6px;border-radius:8px;
}
.auth-close:hover{background:var(--bg);color:#41506b}

.auth-head{margin-bottom:16px;padding-right:24px}
.auth-title{font-size:19px;font-weight:800;color:var(--ink)}
.auth-sub{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.6}

.auth-tabs{display:flex;gap:6px;background:var(--bg);border-radius:11px;padding:4px;margin-bottom:16px}
.auth-tabs button{
  flex:1;border:0;background:transparent;border-radius:8px;padding:8px 0;
  font-size:13px;font-weight:700;color:var(--muted);transition:.15s;
}
.auth-tabs button.on{background:#fff;color:var(--blue);box-shadow:0 2px 8px rgba(32,65,120,.08)}

.auth-form{display:flex;flex-direction:column;gap:11px}
.auth-field{display:flex;flex-direction:column;gap:5px}
.auth-field>span{font-size:12px;font-weight:700;color:#5b6a85}
.auth-field input{
  border:1px solid var(--line);border-radius:10px;padding:11px 12px;
  font-size:14px;color:var(--ink);background:#fcfdff;transition:.15s;
}
.auth-field input:focus{outline:0;border-color:#8fb6f7;background:#fff;box-shadow:0 0 0 3px #eaf2ff}

.auth-submit{width:100%;margin-top:4px}
.auth-submit.ghost{background:#fff;border:1px solid var(--line);color:#5b6a85;box-shadow:none}
.auth-submit.ghost:hover{background:var(--bg);transform:none}

.auth-check{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#41506b;line-height:1.6}
.auth-check input{margin-top:2px;flex-shrink:0}

.auth-foot{display:flex;justify-content:space-between;gap:10px;margin-top:12px;
  font-size:12px;color:var(--muted);flex-wrap:wrap}
.auth-foot a{color:var(--blue);text-decoration:none;font-weight:700}
.auth-foot a:hover{text-decoration:underline}
.auth-note{font-size:11px;color:#9aa6b8;line-height:1.6}

.auth-err{background:#fdecec;color:#b91c1c;border-radius:10px;padding:10px 12px;
  font-size:12px;line-height:1.6;margin-bottom:12px}
.auth-ok{background:#e9f8f3;color:#0f766e;border-radius:10px;padding:10px 12px;
  font-size:12px;line-height:1.6;margin-bottom:12px}
.auth-tip{font-size:11px;color:var(--muted);line-height:1.7}
.auth-warn{font-size:11px;color:#b45309;background:#fef4e6;border-radius:10px;
  padding:10px 12px;line-height:1.7}

.auth-code{
  font-family:ui-monospace,Consolas,monospace;font-size:19px;font-weight:800;
  letter-spacing:2px;text-align:center;color:var(--ink);background:var(--blue-soft);
  border:1px dashed #b9d3fb;border-radius:12px;padding:18px 10px;user-select:all;
}
.auth-copy{width:100%}

.auth-toast{
  position:fixed;left:50%;bottom:38px;transform:translateX(-50%);z-index:1400;
  background:#17233d;color:#fff;font-size:13px;padding:11px 18px;border-radius:11px;
  box-shadow:0 12px 30px rgba(20,40,80,.28);transition:.35s;
}
.auth-toast.out{opacity:0;transform:translate(-50%,8px)}

@media (max-width:760px){
  /* 窄屏顶栏只有约 290px：账号按钮必须短且不允许被挤压变形，
     否则会出现「登…」这种只剩两个字的按钮（2026-11-09 实测）。 */
  .top-actions{flex-shrink:0}
  .auth-chip{padding:7px 11px;font-size:12px;max-width:72px;flex-shrink:0}
}

@media (max-width:620px){
  .auth-card{padding:22px 18px 18px}
  .auth-code{font-size:16px;letter-spacing:1px}
}
