.identity-switch-btn {
  min-height:36px; padding:0 12px; border:1px solid #dce7d4; border-radius:999px;
  background:#f5faf2; color:#4f6f43; font-size:12px; font-weight:800; cursor:pointer;
  white-space:nowrap; box-shadow:0 1px 3px rgba(80,110,67,.08);
}
.identity-switch-btn.hidden { display:none !important; }
.identity-switch-btn:active { transform:scale(.98); }
.identity-backdrop {
  position:fixed; inset:0; background:rgba(35,28,20,.38); z-index:10001;
  display:none; align-items:flex-end; justify-content:center;
}
.identity-backdrop.show { display:flex; }
.identity-modal {
  background:#faf7f2; border-radius:18px 18px 0 0; box-shadow:0 -10px 30px rgba(74,55,40,.18);
  width:100%; max-width:480px; max-height:82dvh; overflow:auto;
  transform:translateY(100%); transition:transform .28s cubic-bezier(.32,.72,0,1);
  padding-bottom:env(safe-area-inset-bottom, 0);
}
.identity-backdrop.show .identity-modal { transform:translateY(0); }
.identity-modal-grip { width:36px; height:4px; border-radius:999px; background:#ded7cb; margin:10px auto 0; }
.identity-modal-header { display:flex; align-items:center; justify-content:space-between; padding:12px 18px; border-bottom:1px solid #eee4d5; }
.identity-modal-header h3 { font-size:17px; font-weight:800; color:#3e3a35; margin:0; }
.identity-close-btn { min-width:36px; min-height:36px; background:none; border:none; font-size:20px; color:#8c8273; cursor:pointer; border-radius:8px; }
.identity-list { padding:10px; }
.identity-option {
  width:100%; min-height:54px; border:1px solid #ded7cb; background:#fff; border-radius:12px; padding:12px 13px;
  display:flex; align-items:center; justify-content:space-between; gap:12px; text-align:left; cursor:pointer;
}
.identity-option + .identity-option { margin-top:6px; }
.identity-option:active { background:#f4f8f1; transform:scale(.99); }
.identity-option.current { background:#edf6e9; border-color:#cfe3c4; color:#3f6331; cursor:default; }
.identity-option-main { min-width:0; }
.identity-option-role { font-size:15px; font-weight:800; color:#3e3a35; }
.identity-option-code { display:block; margin-top:3px; font-size:12px; color:#8a8175; word-break:break-all; }
.identity-current-mark { flex:none; font-size:12px; font-weight:800; color:#4f6f43; }
.identity-auth-step { padding:4px 18px 12px; }
.identity-auth-step.hidden { display:none; }
.identity-auth-step label { display:block; font-size:13px; font-weight:700; color:#6f675d; margin:8px 0; line-height:1.55; }
.identity-auth-step input { width:100%; padding:12px; border:1px solid #ded7cb; border-radius:9px; font-size:16px; box-sizing:border-box; }
.identity-auth-hint { background:#edf6e9; color:#3f6331; border:1px solid #cfe3c4; border-radius:9px; padding:10px 12px; font-size:13px; line-height:1.55; }
.identity-auth-hint.hidden, .identity-password-input.hidden { display:none; }
.identity-submit-btn { width:100%; min-height:46px; margin-top:10px; border:none; border-radius:9px; background:#4f6f43; color:#fff; font-size:15px; font-weight:800; cursor:pointer; }
.identity-submit-btn:disabled { opacity:.6; cursor:not-allowed; }
.identity-err { min-height:18px; padding:0 18px 14px; font-size:12px; color:#b42318; }
.identity-empty { padding:18px; text-align:center; color:#8a8175; font-size:13px; }
.large-text-mode .identity-switch-btn { min-height:44px; font-size:15px; }
.large-text-mode .identity-option-role, .large-text-mode .identity-submit-btn { font-size:17px; }
.large-text-mode .identity-option-code, .large-text-mode .identity-auth-step label,
.large-text-mode .identity-auth-hint, .large-text-mode .identity-err { font-size:15px; line-height:1.65; }
@media (min-width:600px) {
  .identity-backdrop { align-items:center; padding:20px; }
  .identity-modal { border-radius:18px; max-height:min(720px, 88vh); transform:translateY(18px) scale(.98); }
  .identity-backdrop.show .identity-modal { transform:translateY(0) scale(1); }
}
@media (max-width:520px) {
  .header-actions, .topbar-actions { flex-wrap:wrap; }
  .identity-switch-btn { min-height:40px; }
}
