.account-drawer-trigger {
  position: fixed;
  top: 42%;
  right: 0;
  z-index: 1180;
  display: flex;
  width: 48px;
  min-width: 48px;
  min-height: 154px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  padding: 12px 8px;
  border: 1px solid rgba(112, 82, 154, .22);
  border-right: 0;
  border-radius: 16px 0 0 16px;
  color: #5e467e;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  background: rgba(255, 252, 255, .94);
  box-shadow: 0 12px 30px rgba(91, 66, 125, .16);
  transform: translateY(-50%);
  transition: color .22s ease, background .22s ease, transform .22s ease, box-shadow .22s ease;
  backdrop-filter: blur(12px);
}

.account-drawer-trigger #accountTriggerLabel {
  writing-mode: vertical-rl;
  letter-spacing: .12em;
  line-height: 1.2;
}

.account-drawer-trigger:hover,
.account-drawer-trigger:focus-visible {
  color: #fff;
  background: #805ba8;
  box-shadow: 0 15px 34px rgba(91, 66, 125, .24);
  outline: none;
  transform: translateY(-50%) translateX(-3px);
}

.account-trigger-orbit {
  width: 9px;
  height: 9px;
  border: 2px solid currentColor;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(154, 116, 194, .12);
}

.account-drawer-trigger.is-authenticated .account-trigger-orbit {
  border-color: #27846c;
  background: #27846c;
  box-shadow: 0 0 0 3px rgba(39, 132, 108, .14);
}

.account-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1190;
  background: rgba(49, 38, 67, .18);
  backdrop-filter: blur(2px);
}

.account-drawer-backdrop[hidden] { display: none !important; }

.account-drawer {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1200;
  width: min(430px, 100%);
  height: 100dvh;
  min-height: 0;
  padding: clamp(28px, 5vw, 46px);
  color: #413451;
  background:
    radial-gradient(circle at 100% 0, rgba(230, 209, 244, .55), transparent 32%),
    #fffdfd;
  box-shadow: -22px 0 70px rgba(65, 46, 91, .2);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
  transform: translateX(104%);
  transition: transform .34s cubic-bezier(.2, .8, .2, 1);
  visibility: hidden;
}

.account-drawer.is-open {
  transform: translateX(0);
  visibility: visible;
}

.account-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(118, 88, 155, .16);
}

.account-drawer-head > div {
  flex: 1 1 auto;
  min-width: 0;
}

.account-drawer h2 {
  margin: 0;
  color: #594374;
  font-family: "STKaiti", "KaiTi", "Microsoft YaHei", serif;
  font-size: clamp(26px, 3vw, 30px);
  line-height: 1.2;
}

.account-drawer-close {
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 15px;
  color: #745d8e;
  font: inherit;
  font-size: 26px;
  cursor: pointer;
  background: #f4edf8;
}

.account-drawer-close:hover,
.account-drawer-close:focus-visible {
  color: #fff;
  background: #805ba8;
  outline: none;
}

.account-auth-view { padding-top: 28px; }
.account-auth-view[hidden] { display: none !important; }
.account-auth-tabs[hidden],
#accountPasswordResetPanel[hidden] { display: none !important; }

.account-auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 24px;
  padding: 5px;
  border: 1px solid rgba(118, 88, 155, .15);
  border-radius: 16px;
  background: #f8f3fa;
}

.account-auth-tabs button {
  min-height: 42px;
  border: 0;
  border-radius: 12px;
  color: #756680;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
  background: transparent;
}

.account-auth-tabs button[aria-selected="true"] {
  color: #5d427b;
  background: #fff;
  box-shadow: 0 7px 18px rgba(90, 62, 119, .11);
}

.account-auth-tabs button:focus-visible {
  outline: 3px solid rgba(128, 91, 168, .16);
}

.account-login-form {
  display: grid;
  gap: 10px;
}

.account-login-form > div {
  display: grid;
  gap: 10px;
}

.account-login-form > div[hidden] {
  display: none !important;
}

.account-login-form label {
  margin-top: 8px;
  color: #594a69;
  font-size: 14px;
  font-weight: 800;
}

.account-login-form input {
  width: 100%;
  min-height: 50px;
  padding: 0 15px;
  border: 1px solid #cfc2dc;
  border-radius: 14px;
  color: #362c42;
  font: inherit;
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(75, 52, 101, .04);
}

.account-login-form input:focus {
  border-color: #805ba8;
  outline: 3px solid rgba(128, 91, 168, .16);
}

.account-login-form input[aria-invalid="true"] {
  border-color: #b84d5d;
  outline-color: rgba(184, 77, 93, .14);
}

.account-field-hint {
  margin: -3px 0 0;
  color: #85778f;
  font-size: 12px;
  line-height: 1.55;
}

.account-step-note {
  display: grid;
  gap: 5px;
  margin: 0 0 8px;
  padding: 14px 15px;
  border-left: 3px solid #b75483;
  border-radius: 0 12px 12px 0;
  color: #796b83;
  background: #faf5fa;
  line-height: 1.55;
}

.account-step-note strong { color: #594374; }
.account-step-note span { font-size: 13px; }

.account-login-form .account-consent,
.account-consent {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 10px;
  align-items: start;
  margin-top: 14px;
  color: #71637b;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.65;
}

.account-login-form .account-consent input,
.account-consent input {
  width: 18px;
  min-height: 18px;
  margin-top: 2px;
  accent-color: #805ba8;
  box-shadow: none;
}

.account-link-action {
  justify-self: center;
  margin-top: 6px;
  padding: 8px 10px;
  border: 0;
  color: #6d5288;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  background: transparent;
}

.account-link-action:hover,
.account-link-action:focus-visible { color: #a13e70; outline: none; text-decoration: underline; }

#accountPasswordResetPanel .account-link-action:last-child {
  margin-top: 2px;
}

.account-field-error {
  margin: -3px 0 0;
  color: #a83f50;
  font-size: 13px;
}

.account-primary-action,
.account-secondary-action {
  min-height: 50px;
  margin-top: 14px;
  padding: 0 20px;
  border-radius: 15px;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.account-primary-action {
  border: 1px solid #805ba8;
  color: #fff;
  background: #805ba8;
  box-shadow: 0 13px 26px rgba(105, 73, 141, .2);
}

.account-primary-action:hover,
.account-primary-action:focus-visible { background: #68478e; outline: 3px solid rgba(128, 91, 168, .17); }
.account-primary-action:disabled { cursor: wait; opacity: .68; }

.account-secondary-action {
  width: 100%;
  border: 1px solid #cabbd7;
  color: #654f7a;
  background: #fff;
}

.account-secondary-action:hover,
.account-secondary-action:focus-visible { border-color: #805ba8; outline: 3px solid rgba(128, 91, 168, .14); }

.account-api-credentials-entry {
  display: flex;
  width: 100%;
  min-height: 74px;
  align-items: center;
  margin-top: 14px;
  padding: 0 20px;
  border: 1px solid #d7c9e1;
  border-radius: 17px;
  color: #57426f;
  font: inherit;
  font-size: 15px;
  font-weight: 850;
  text-align: left;
  cursor: pointer;
  background: #fff;
}
.account-api-credentials-entry[hidden],
.account-api-credentials-panel[hidden] { display: none !important; }
.account-api-credentials-entry:hover,
.account-api-credentials-entry:focus-visible { border-color: #805ba8; outline: 3px solid rgba(128, 91, 168, .14); }

.account-api-credentials-heading {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 22px;
}
.account-api-credentials-heading h3 { margin: 0; color: #594374; font-size: 22px; }
.account-api-credentials-heading button {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid #cfc2dc;
  border-radius: 13px;
  color: #654f7a;
  font: inherit;
  cursor: pointer;
  background: #fff;
}
.account-api-credentials-intro {
  margin: 0 0 18px;
  color: #786a83;
  line-height: 1.65;
}
.account-api-credentials-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 20px;
  border: 1px solid rgba(118, 88, 155, .15);
  border-radius: 16px;
  overflow: hidden;
}
.account-api-credentials-summary div {
  display: grid;
  gap: 6px;
  min-height: 82px;
  align-content: center;
  padding: 14px 16px;
}
.account-api-credentials-summary div + div { border-left: 1px solid rgba(118, 88, 155, .15); }
.account-api-credentials-summary span { color: #81738b; font-size: 12px; }
.account-api-credentials-summary strong { color: #594374; font-size: 15px; }
.account-api-credentials-summary strong[data-ready="true"] { color: #28735f; }
.account-api-credentials-form {
  display: grid;
  gap: 10px;
}
.account-api-credentials-form label {
  margin-top: 8px;
  color: #594a69;
  font-size: 14px;
  font-weight: 800;
}
.account-api-credentials-form input {
  width: 100%;
  min-height: 50px;
  padding: 0 15px;
  border: 1px solid #cfc2dc;
  border-radius: 14px;
  color: #362c42;
  font: inherit;
  background: #fff;
}
.account-api-credentials-form input:focus { border-color: #805ba8; outline: 3px solid rgba(128, 91, 168, .16); }
.account-api-credentials-clear { color: #8f3748; border-color: #dfb7bf; }

@media (max-width: 460px) {
  .account-api-credentials-summary { grid-template-columns: 1fr; }
  .account-api-credentials-summary div + div { border-top: 1px solid rgba(118, 88, 155, .15); border-left: 0; }
}

.account-form-status {
  min-height: 1.5em;
  margin: 4px 0 0;
  color: #74677f;
  font-size: 13px;
  line-height: 1.6;
}

.account-form-status[data-kind="error"] { color: #a83f50; }
.account-form-status[data-kind="success"] { color: #28735f; }

.account-auth-note {
  margin: 28px 0 0;
  padding-top: 20px;
  border-top: 1px solid rgba(118, 88, 155, .12);
  color: #84778f;
  font-size: 13px;
  line-height: 1.7;
}

.account-identity-summary {
  display: flex;
  align-items: center;
  gap: 15px;
}

.account-avatar-button {
  display: grid;
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid rgba(128, 91, 168, .22);
  place-items: center;
  border-radius: 17px;
  color: #fff;
  cursor: pointer;
  font-size: 20px;
  font-weight: 900;
  background: linear-gradient(145deg, #c66f99, #7c69ad);
  box-shadow: 0 8px 20px rgba(90, 62, 119, .13);
  overflow: hidden;
}
.account-avatar-button.is-loading {
  border-color: rgba(128, 91, 168, .12);
  background: linear-gradient(105deg, #f3edf7 24%, #fbf8fd 42%, #f3edf7 60%);
  background-size: 220% 100%;
  box-shadow: none;
  animation: account-avatar-loading 1.35s ease-in-out infinite;
}
@keyframes account-avatar-loading {
  from { background-position: 100% 0; }
  to { background-position: -100% 0; }
}

.account-avatar-button img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.account-avatar-button span { display: grid; width: 100%; height: 100%; place-items: center; }
.account-avatar-button img[hidden],
.account-avatar-button span[hidden] { display: none !important; }
.account-avatar-button:hover:not(:disabled),
.account-avatar-button:focus-visible:not(:disabled) {
  border-color: #805ba8;
  outline: 3px solid rgba(128, 91, 168, .15);
  transform: translateY(-1px);
}
.account-avatar-button:disabled { cursor: default; }
.account-identity-copy { min-width: 0; }
.account-avatar-edit-button {
  margin: 7px 0 0;
  padding: 0;
  border: 0;
  color: #74548f;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  background: transparent;
}
.account-avatar-edit-button:hover,
.account-avatar-edit-button:focus-visible { color: #a13e70; outline: none; text-decoration: underline; }
.account-avatar-edit-button[hidden] { display: none !important; }

.account-avatar-preview[hidden] { display: none !important; }
.account-avatar-preview {
  position: fixed;
  inset: 0;
  z-index: 1320;
  display: grid;
  padding: 24px;
  place-items: center;
}
.account-avatar-preview-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  cursor: zoom-out;
  background: rgba(43, 32, 56, .58);
  backdrop-filter: blur(8px);
}
.account-avatar-preview-dialog {
  position: relative;
  width: min(560px, calc(100vw - 48px));
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 26px;
  background: #fffdfd;
  box-shadow: 0 28px 80px rgba(39, 27, 53, .3);
}
.account-avatar-preview-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}
.account-avatar-preview-heading h2 { margin: 0; color: #594374; font-size: 18px; }
.account-avatar-preview-heading button {
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 13px;
  color: #745d8e;
  font: inherit;
  font-size: 24px;
  cursor: pointer;
  background: #f4edf8;
}
.account-avatar-preview-heading button:hover,
.account-avatar-preview-heading button:focus-visible { color: #fff; background: #805ba8; outline: none; }
.account-avatar-preview-dialog img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  border-radius: 18px;
  object-fit: contain;
  background: #f7f2f9;
}
body.is-avatar-preview-open { overflow: hidden; }

.account-avatar-panel[hidden] { display: none !important; }
.account-avatar-heading {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}
.account-avatar-heading h3 { margin: 0; color: #594374; font-size: 22px; }
.account-avatar-heading button {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid #cfc2dc;
  border-radius: 13px;
  color: #654f7a;
  font: inherit;
  cursor: pointer;
  background: #fff;
}
.account-avatar-categories {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin-bottom: 20px;
  padding: 5px;
  border: 1px solid rgba(118, 88, 155, .15);
  border-radius: 16px;
  background: #f8f3fa;
}
.account-avatar-categories button {
  min-height: 42px;
  border: 0;
  border-radius: 12px;
  color: #756680;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  background: transparent;
}
.account-avatar-categories button[aria-selected="true"] {
  color: #5d427b;
  background: #fff;
  box-shadow: 0 7px 18px rgba(90, 62, 119, .1);
}
.account-avatar-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 22px;
}
.account-avatar-option {
  aspect-ratio: 1;
  padding: 8px;
  border: 1px solid rgba(128, 91, 168, .18);
  border-radius: 20px;
  cursor: pointer;
  background: #fff;
  overflow: hidden;
}
.account-avatar-option img { width: 100%; height: 100%; object-fit: contain; }
.account-avatar-option:hover,
.account-avatar-option:focus-visible { border-color: #9b72bf; outline: 3px solid rgba(128, 91, 168, .12); }
.account-avatar-option[aria-checked="true"] {
  border: 2px solid #805ba8;
  background: #faf6fc;
  box-shadow: 0 9px 22px rgba(90, 62, 119, .13);
}

.account-avatar-custom {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid rgba(118, 88, 155, .14);
}
.account-avatar-custom > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.account-avatar-custom h4 { margin: 0; color: #594374; font-size: 17px; }
.account-avatar-file input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.account-avatar-file span {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  padding: 0 14px;
  border: 1px solid #cfc2dc;
  border-radius: 13px;
  color: #654f7a;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  background: #fff;
}
.account-avatar-file:focus-within span { border-color: #805ba8; outline: 3px solid rgba(128, 91, 168, .14); }
.account-avatar-crop { display: grid; gap: 12px; margin-top: 18px; }
.account-avatar-crop[hidden] { display: none !important; }
.account-avatar-editor-shell {
  width: 100%;
  padding: 8px;
  border: 1px solid rgba(128, 91, 168, .2);
  border-radius: 22px;
  background: linear-gradient(145deg, #fbf8fd, #f3edf8);
  box-shadow: 0 12px 28px rgba(90, 62, 119, .1);
}
.account-avatar-editor-shell canvas[hidden] { display: none !important; }
.account-avatar-editor-shell #accountAvatarEditor {
  display: block;
  width: 100%;
  aspect-ratio: 32 / 21;
  border: 1px solid rgba(128, 91, 168, .24);
  border-radius: 16px;
  cursor: move;
  touch-action: none;
  background: #e9e2ee;
}
.account-avatar-editor-shell #accountAvatarEditor:active { cursor: grabbing; }
.account-avatar-editor-hint {
  margin: 0;
  color: #766780;
  font-size: 13px;
  line-height: 1.65;
  text-align: center;
}
.account-avatar-zoom-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.account-avatar-zoom-heading label { color: #675575; font-size: 13px; font-weight: 800; }
.account-avatar-zoom-heading output {
  color: #805ba8;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}
.account-avatar-crop input[type="range"] {
  --avatar-zoom-progress: 0%;
  width: 100%;
  height: 8px;
  margin: 4px 0 8px;
  border: 0;
  border-radius: 999px;
  appearance: none;
  -webkit-appearance: none;
  background: linear-gradient(
    to right,
    #805ba8 0,
    #805ba8 var(--avatar-zoom-progress),
    #e8e0ed var(--avatar-zoom-progress),
    #e8e0ed 100%
  );
  cursor: pointer;
}
.account-avatar-crop input[type="range"]::-webkit-slider-runnable-track {
  height: 8px;
  border-radius: 999px;
  background: transparent;
}
.account-avatar-crop input[type="range"]::-webkit-slider-thumb {
  width: 22px;
  height: 22px;
  margin-top: -7px;
  border: 3px solid #805ba8;
  border-radius: 50%;
  appearance: none;
  -webkit-appearance: none;
  background: #fff;
  box-shadow: 0 3px 10px rgba(90, 62, 119, .2);
}
.account-avatar-crop input[type="range"]::-moz-range-track {
  height: 8px;
  border: 0;
  border-radius: 999px;
  background: #e8e0ed;
}
.account-avatar-crop input[type="range"]::-moz-range-progress {
  height: 8px;
  border-radius: 999px;
  background: #805ba8;
}
.account-avatar-crop input[type="range"]::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border: 3px solid #805ba8;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 3px 10px rgba(90, 62, 119, .2);
}
.account-avatar-crop input[type="range"]:focus-visible {
  outline: 3px solid rgba(128, 91, 168, .2);
  outline-offset: 5px;
}
@media (forced-colors: active) {
  .account-avatar-crop input[type="range"] {
    appearance: auto;
    -webkit-appearance: auto;
    background: transparent;
  }
}

.account-identity-summary strong,
.account-identity-summary span { display: block; }
.account-identity-summary strong { color: #4e3d61; font-size: 18px; }
.account-identity-summary div span { margin-top: 4px; color: #81758a; font-size: 13px; word-break: break-all; }

.account-detail-list { margin: 28px 0 0; }
.account-detail-list div {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 18px;
  padding: 14px 0;
}
.account-detail-list dt { color: #897d91; }
.account-detail-list dd { margin: 0; color: #4d4058; font-weight: 800; text-align: right; }

.account-activation-recovery {
  margin: 24px 0 4px;
  padding: 20px;
  border: 1px solid rgba(183, 84, 131, .22);
  border-radius: 17px;
  background: #fff8fb;
}

.account-activation-recovery h3 { margin: 0; color: #65487f; font-size: 18px; }
.account-activation-recovery > p { margin: 8px 0 0; color: #7c6e85; font-size: 13px; line-height: 1.65; }
.account-activation-recovery > label:not(.account-consent) {
  display: block;
  margin: 18px 0 7px;
  color: #594a69;
  font-size: 13px;
  font-weight: 800;
}
.account-activation-recovery > input {
  width: 100%;
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid #cfc2dc;
  border-radius: 13px;
  color: #362c42;
  font: inherit;
  background: #fff;
}
.account-activation-recovery > input:focus { border-color: #805ba8; outline: 3px solid rgba(128, 91, 168, .16); }

@media (max-width: 680px) {
  .account-drawer-trigger {
    top: 40%;
    right: 0;
    bottom: auto;
    width: 44px;
    min-width: 44px;
    min-height: 142px;
    padding: 10px 7px;
    border-right: 0;
    border-radius: 15px 0 0 15px;
    transform: translateY(-50%);
  }
  .account-drawer-trigger:hover,
  .account-drawer-trigger:focus-visible { transform: translateY(-50%) translateX(-2px); }
  .account-drawer {
    top: auto;
    bottom: 0;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: min(88dvh, 760px);
    padding: 26px 22px calc(24px + env(safe-area-inset-bottom));
    border-radius: 24px 24px 0 0;
    box-shadow: 0 -22px 64px rgba(65, 46, 91, .22);
    transform: translateY(104%);
  }
  .account-drawer.is-open { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .account-drawer,
  .account-drawer-trigger { transition: none; }
  .account-avatar-button.is-loading { animation: none; }
}
