/* =========================================================================
 * 登录页 / 账号管理 / 用户菜单 样式
 * ========================================================================= */

/* ---- 登录页 ---- */
.login-overlay{
  position:fixed;inset:0;z-index:10000;display:none;
  align-items:center;justify-content:center;padding:20px;
  background:linear-gradient(135deg,#1a1a2e 0%,#22243f 45%,#2b2d52 100%);
}
.login-overlay.show{display:flex;animation:fadeIn .22s ease}
body.login-locked{overflow:hidden}
body.login-locked > header,
body.login-locked > main{filter:blur(2px);pointer-events:none;user-select:none}

.login-card{
  width:100%;max-width:400px;background:#fff;border-radius:18px;
  padding:32px 30px 26px;box-shadow:0 24px 70px rgba(0,0,0,.42);
  animation:slideUp .3s cubic-bezier(.16,1,.3,1);
}
.login-brand{display:flex;align-items:center;gap:13px;margin-bottom:26px}
.login-logo{
  width:46px;height:46px;border-radius:13px;flex-shrink:0;
  background:linear-gradient(135deg,var(--blue),var(--purple));
  color:#fff;font-size:22px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(67,97,238,.34);
}
.login-brand h1{font-size:17px;font-weight:600;color:var(--navy);margin:0 0 3px;letter-spacing:.2px}
.login-brand p{font-size:12px;color:var(--muted);margin:0}

.login-form{display:flex;flex-direction:column;gap:14px}
.login-field{display:flex;flex-direction:column;gap:6px}
.login-field span{font-size:12px;color:var(--muted);font-weight:500}
.login-field input{
  width:100%;padding:11px 13px;font-size:14px;border:1px solid var(--line);
  border-radius:10px;background:#fff;font-family:inherit;color:var(--navy);
  transition:border-color .16s,box-shadow .16s;
}
.login-field input:focus{
  outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(67,97,238,.15);
}
.login-err{min-height:17px;font-size:12px;color:var(--pink);line-height:1.4}
.login-submit{
  width:100%;padding:12px;font-size:15px;font-family:inherit;font-weight:600;
  border:0;border-radius:10px;color:#fff;cursor:pointer;letter-spacing:2px;
  background:linear-gradient(135deg,var(--blue),var(--purple));
  box-shadow:0 4px 14px rgba(67,97,238,.3);transition:all .18s;
}
.login-submit:hover:not(:disabled){box-shadow:0 6px 20px rgba(67,97,238,.42);transform:translateY(-1px)}
.login-submit:disabled{opacity:.6;cursor:not-allowed}
.login-tip{
  margin-top:18px;padding-top:14px;border-top:1px solid var(--line);
  font-size:11px;color:#9ca3af;text-align:center;line-height:1.6;
}

/* ---- 顶部用户栏 ---- */
.header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.user-bar{position:relative}
.user-chip{
  display:flex;align-items:center;gap:8px;padding:5px 12px 5px 6px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);
  border-radius:22px;cursor:pointer;transition:all .16s;user-select:none;
}
.user-chip:hover{background:rgba(255,255,255,.18)}
.user-avatar{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--cyan),var(--blue));
  color:#fff;font-size:12px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}
.user-name{font-size:13px;color:#fff;font-weight:500;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-caret{font-size:10px;color:rgba(255,255,255,.6)}

.user-menu{
  position:absolute;right:0;top:calc(100% + 8px);min-width:184px;z-index:900;
  background:#fff;border-radius:12px;padding:6px;
  box-shadow:0 12px 36px rgba(0,0,0,.2);border:1px solid var(--line);
  display:none;flex-direction:column;gap:2px;
}
.user-menu.show{display:flex;animation:slideUp .16s ease}
.user-menu-head{padding:9px 11px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.user-menu-name{font-size:14px;font-weight:600;color:var(--navy)}
.user-menu-role{font-size:11px;color:var(--muted);margin-top:2px}
.user-menu-item{
  text-align:left;padding:9px 11px;border:0;background:transparent;border-radius:7px;
  font-size:13px;font-family:inherit;color:var(--navy);cursor:pointer;transition:all .14s;
}
.user-menu-item:hover{background:#f1f3f9}
.user-menu-item.danger{color:var(--pink)}
.user-menu-item.danger:hover{background:#fff0f5}

/* ---- 账号管理弹窗 ---- */
.um-loading{padding:30px;text-align:center;color:var(--muted);font-size:13px}
.um-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.um-hint{
  flex:1;background:#f3f6ff;border-left:3px solid var(--blue);border-radius:6px;
  padding:9px 12px;font-size:12px;color:var(--muted);line-height:1.6;
}
.um-table{width:100%;border-collapse:collapse;font-size:13px}
.um-table th{
  padding:9px 10px;text-align:left;font-weight:600;font-size:12px;
  color:var(--muted);border-bottom:1px solid var(--line);background:#fafbfd;
}
.um-table td{padding:10px;border-bottom:1px solid #f0f0f0}
.um-table tr:hover td{background:#fafbfd}
.um-name{font-weight:500;color:var(--navy)}
.um-me{
  display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;
  background:#e0e9ff;color:var(--blue);font-size:10px;font-weight:500;
}
.um-role{display:inline-block;padding:2px 9px;border-radius:10px;font-size:12px}
.um-role.r-admin{background:#fff2f0;color:#f5222d}
.um-role.r-user{background:#f0f5ff;color:#4f8cf7}
.um-time{font-size:12px;color:var(--muted);white-space:nowrap}
.um-st{display:inline-block;padding:2px 9px;border-radius:10px;font-size:12px}
.um-st.st-on{background:#e6f4ff;color:#1677ff}
.um-st.st-off{background:#f5f5f5;color:#999}
.um-ops{white-space:nowrap}
.um-ops .btn-link{padding:3px 5px;font-size:12px}

/* ---- 操作记录：操作人 ---- */
.log-user{
  flex:0 0 auto;padding:2px 8px;border-radius:4px;
  background:#eef2ff;color:#4f8cf7;font-size:11px;white-space:nowrap;
}
