/* 会员系统（注册/登录）样式：入口与全站卡片使用同一套主题表面，不再使用高饱和胶囊。 */
.ng-member-entry {
  position:relative;
  display:inline-flex;
  min-width:108px;
  max-width:174px;
  min-height:42px;
  padding:5px 12px 5px 7px;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 28%,var(--ng-shell-card-border,var(--ng-line,#d9e2f0)));
  border-radius:14px;
  color:var(--ng-shell-text,var(--ng-ink,var(--text,#182337)));
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--ng-shell-surface-strong,var(--ng-panel-solid,var(--card,#fff))) 96%,transparent),color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 9%,var(--ng-shell-surface-strong,var(--ng-panel-solid,var(--card,#fff)))));
  box-shadow:inset 0 1px color-mix(in srgb,var(--ng-shell-surface-strong,#fff) 72%,transparent),0 7px 18px color-mix(in srgb,var(--ng-shell-text,#182337) 9%,transparent);
  font:inherit;
  font-size:13px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
  transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .14s ease;
}
.ng-member-entry::after {
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--ng-shell-primary,var(--ng-accent,#2f6bff)),var(--ng-shell-accent,var(--ng-accent-2,#68a4ff)),transparent);
  opacity:.72;
  pointer-events:none;
}
.ng-member-entry__visual {
  position:relative;
  display:grid;
  width:30px;
  height:30px;
  min-width:30px;
  place-items:center;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 32%,var(--ng-shell-card-border,var(--ng-line,#d9e2f0)));
  border-radius:10px;
  color:#fff;
  background:color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 12%,var(--ng-shell-surface-strong,var(--ng-panel-solid,var(--card,#fff))));
  box-shadow:0 4px 10px color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 14%,transparent);
  font-size:13px;
  font-weight:900;
  line-height:1;
}
.ng-member-entry__visual::before {
  content:"";
  width:26px;
  height:26px;
  background:url('/action-icons-ai/v1/login-register.webp') center / contain no-repeat;
  filter:drop-shadow(0 2px 4px color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 24%,transparent));
}
.ng-member-entry.is-member .ng-member-entry__visual {
  width:34px;
  height:34px;
  min-width:34px;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.ng-member-entry.is-member .ng-member-entry__visual::before { display:none; }
.ng-member-entry.is-member .ng-member-entry__visual > .ng-identity-frame { width:34px; height:34px; }
.ng-member-entry .ng-member-badge { display:block; min-width:0; max-width:112px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ng-member-entry.is-member { border-color:color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 34%,var(--ng-shell-card-border,var(--ng-line,#d9e2f0))); }
.ng-member-entry:focus-visible { outline:3px solid color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 28%,transparent); outline-offset:3px; }
.ng-member-entry:active { transform:scale(.97); }
@media (hover:hover) {
  .ng-member-entry:hover {
    border-color:color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 52%,var(--ng-shell-card-border,var(--ng-line,#d9e2f0)));
    box-shadow:inset 0 1px color-mix(in srgb,var(--ng-shell-surface-strong,#fff) 76%,transparent),0 10px 24px color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#2f6bff)) 16%,transparent);
    transform:translateY(-1px);
  }
}
html[data-theme="dark"] .ng-member-entry {
  background:linear-gradient(135deg,color-mix(in srgb,var(--ng-shell-surface-strong,var(--ng-panel-solid,#111827)) 94%,transparent),color-mix(in srgb,var(--ng-shell-primary,var(--ng-accent,#5e7cff)) 13%,var(--ng-shell-surface-strong,var(--ng-panel-solid,#111827))));
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 9px 22px rgba(0,0,0,.2);
}
@supports not (color:color-mix(in srgb,white,black)) {
  .ng-member-entry { border-color:var(--ng-shell-card-border,#d9e2f0); background:var(--ng-shell-surface-strong,#fff); }
}
.ng-member-category { position:relative; }
.ng-member-category .ng-cat-note { position:absolute; top:-6px; right:-6px; padding:1px 7px; color:#fff; font-size:10px; font-weight:900; border-radius:999px; background:linear-gradient(90deg,#ff5a3d,#ffb000); box-shadow:0 4px 10px rgba(255,90,61,.35); }

.ng-auth-overlay,
.ng-game-gate {
  --ng-member-ui-text:#182337;
  --ng-member-ui-muted:#64748b;
  --ng-member-ui-panel:var(--ng-shell-card-bg,linear-gradient(145deg,#fff,#eef5ff));
  --ng-member-ui-control:var(--ng-shell-nav-bg,rgba(247,250,255,.97));
  --ng-member-ui-border:var(--ng-shell-card-border,rgba(47,123,255,.2));
  --ng-member-ui-decoration:var(--ng-shell-card-decor,radial-gradient(circle at 88% 10%,rgba(55,132,255,.18),transparent 42%));
  --ng-member-ui-accent:var(--ng-shell-icon-fg,var(--ng-shell-primary,#2f7bff));
  --ng-member-ui-button:var(--ng-shell-nav-pedestal,linear-gradient(135deg,#80b8ff,#2d6cd7));
  --ng-member-ui-radius:var(--ng-shell-radius,22px);
  --ng-member-ui-on-accent:#fff;
  color-scheme:light;
}
html[data-theme="dark"] :is(.ng-auth-overlay,.ng-game-gate) {
  --ng-member-ui-text:#f4f7ff;
  --ng-member-ui-muted:#aab7cb;
  color-scheme:dark;
}
html[data-ui-theme="gold"] :is(.ng-auth-overlay,.ng-game-gate),
html[data-ui-theme="original"][data-theme="dark"] :is(.ng-auth-overlay,.ng-game-gate) {
  --ng-member-ui-on-accent:#21170a;
}
.ng-auth-overlay { position:fixed; inset:0; z-index:9990; display:flex; align-items:center; justify-content:center; padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left)); background:color-mix(in srgb,var(--ng-member-ui-control) 18%,rgba(3,8,24,.78)); -webkit-backdrop-filter:blur(14px) saturate(.94); backdrop-filter:blur(14px) saturate(.94); }
.ng-auth-overlay.hidden { display:none; }
.ng-auth-card { --ng-auth-card-surface:var(--ng-shell-surface-strong,var(--ng-member-ui-panel)); position:relative; width:min(100%,420px); max-height:min(92vh,760px); overflow-y:auto; padding:26px 24px 22px; border:1px solid var(--ng-member-ui-border); border-radius:var(--ng-member-ui-radius); color:var(--ng-member-ui-text); background:var(--ng-member-ui-decoration),var(--ng-member-ui-panel); box-shadow:0 28px 78px rgba(3,12,34,.32),0 0 0 1px color-mix(in srgb,var(--ng-member-ui-text) 7%,transparent) inset; scrollbar-color:color-mix(in srgb,var(--ng-member-ui-accent) 38%,transparent) transparent; scrollbar-width:thin; }
.ng-auth-close { position:absolute; top:12px; right:12px; display:grid; width:44px; height:44px; min-width:44px; min-height:44px; margin:0; padding:0; place-items:center; overflow:visible; color:var(--ng-member-ui-text); font-size:0; line-height:0; border:1px solid var(--ng-member-ui-border); border-radius:14px; background:var(--ng-member-ui-control); box-shadow:0 7px 18px color-mix(in srgb,var(--ng-member-ui-text) 12%,transparent); cursor:pointer; -webkit-tap-highlight-color:transparent; transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease; }
.ng-auth-close:focus-visible { outline:3px solid rgba(94,111,255,.28); outline-offset:3px; }
.ng-auth-close:active { transform:scale(.96); }
.ng-auth-title { margin:2px 0 2px; color:var(--ng-member-ui-text); font-size:20px; font-weight:900; }
.ng-auth-sub { margin:0 0 16px; color:var(--ng-member-ui-muted); font-size:13px; }
.ng-auth-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:16px; }
.ng-auth-tab { min-height:36px; padding:7px 8px; color:var(--ng-member-ui-text); font-size:13px; font-weight:800; border:1px solid var(--ng-member-ui-border); border-radius:10px; background:var(--ng-member-ui-control); cursor:pointer; }
.ng-auth-tab.active { color:var(--ng-member-ui-on-accent); border-color:color-mix(in srgb,var(--ng-member-ui-accent) 52%,#fff); background:var(--ng-member-ui-button); box-shadow:0 8px 18px color-mix(in srgb,var(--ng-member-ui-accent) 28%,transparent); }
.ng-auth-pane { display:none; }
.ng-auth-pane.active { display:block; }
.ng-auth-field { display:block; margin-bottom:12px; }
.ng-auth-field > span { display:block; margin-bottom:5px; color:var(--ng-member-ui-muted); font-size:12px; font-weight:800; }
.ng-auth-field input, .ng-auth-field select { width:100%; min-height:42px; padding:0 14px; color:var(--ng-member-ui-text); font-size:14px; border:1px solid var(--ng-member-ui-border); border-radius:12px; outline:0; background:var(--ng-member-ui-control); box-shadow:inset 0 1px color-mix(in srgb,#fff 58%,transparent); }
.ng-auth-field input:focus { border-color:var(--ng-member-ui-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--ng-member-ui-accent) 18%,transparent); }
.ng-auth-field input[aria-invalid="true"] { border-color:var(--danger, #e54861); }
.ng-auth-captcha { display:grid; grid-template-columns:minmax(0,1fr) 132px; gap:8px; align-items:center; }
.ng-auth-captcha button { min-height:42px; padding:0 10px; color:var(--ng-member-ui-on-accent); font-size:13px; font-weight:900; border:1px solid color-mix(in srgb,var(--ng-member-ui-accent) 52%,#fff); border-radius:12px; background:var(--ng-member-ui-button); cursor:pointer; }
.ng-auth-submit { width:100%; min-height:44px; margin-top:4px; color:var(--ng-member-ui-on-accent); font-size:15px; font-weight:900; border:1px solid color-mix(in srgb,var(--ng-member-ui-accent) 52%,#fff); border-radius:14px; background:var(--ng-member-ui-button); box-shadow:0 10px 22px color-mix(in srgb,var(--ng-member-ui-accent) 28%,transparent); cursor:pointer; }
.ng-auth-submit:disabled { opacity:.64; cursor:not-allowed; }
.ng-auth-recover-link { display:block; width:max-content; min-height:36px; margin:8px auto 0; padding:6px 10px; color:var(--ng-member-ui-accent); font:inherit; font-size:13px; font-weight:800; border:0; border-radius:9px; background:transparent; cursor:pointer; }
.ng-auth-recover-link:hover { background:rgba(47,107,255,.08); }
.ng-auth-recover-link:focus-visible { outline:3px solid rgba(47,107,255,.2); outline-offset:2px; }
.ng-auth-error { display:none; margin:10px 0 0; padding:9px 12px; color:var(--danger, #e54861); font-size:12px; font-weight:800; border:1px solid rgba(229,72,97,.28); border-radius:10px; background:rgba(229,72,97,.07); }
.ng-auth-error.show { display:block; }
.ng-auth-hint { margin:10px 0 0; color:var(--ng-member-ui-muted); font-size:12px; line-height:1.6; }
.ng-auth-recover-question { padding:12px; margin-bottom:12px; color:var(--ng-member-ui-muted); font-size:13px; font-weight:800; border:1px dashed var(--ng-member-ui-border); border-radius:12px; background:color-mix(in srgb,var(--ng-member-ui-accent) 7%,transparent); }
.ng-auth-success { display:none; margin:10px 0 0; padding:10px 12px; color:var(--success, #12a06a); font-size:13px; font-weight:800; border:1px solid rgba(18,160,106,.3); border-radius:10px; background:rgba(18,160,106,.08); }
.ng-auth-success.show { display:block; }

html[data-theme="dark"] .ng-auth-card { box-shadow:0 30px 84px rgba(0,0,0,.54),0 0 0 1px rgba(255,255,255,.04) inset; }
html[data-theme="dark"] .ng-auth-close { box-shadow:inset 0 1px rgba(255,255,255,.08),0 7px 18px rgba(0,0,0,.2); }

@media (max-width: 600px) {
  .ng-auth-card { padding:22px 16px 18px; }
  .ng-auth-captcha { grid-template-columns:minmax(0,1fr) 116px; }
}
/* 游戏登录守卫遮罩 */
.ng-game-gate,.ng-game-gate * { box-sizing:border-box; }
.ng-game-gate { position:fixed; inset:0; z-index:9980; display:flex; align-items:center; justify-content:center; overflow:auto; padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left)); background:radial-gradient(circle at 50% 4%,color-mix(in srgb,var(--ng-member-ui-accent) 18%,transparent),transparent 38%),color-mix(in srgb,var(--ng-shell-page,var(--ng-page,#071120)) 94%,#030818 6%); }
.ng-game-gate-card { position:relative; isolation:isolate; display:flex; flex-direction:column; align-items:center; gap:10px; width:min(100%,436px); overflow:hidden; padding:34px 32px 28px; text-align:center; border:1px solid color-mix(in srgb,var(--ng-member-ui-border) 88%,var(--ng-member-ui-text) 12%); border-radius:calc(var(--ng-member-ui-radius) + 2px); color:var(--ng-member-ui-text); background:var(--ng-member-ui-decoration),var(--ng-member-ui-panel); box-shadow:0 28px 72px color-mix(in srgb,var(--ng-member-ui-text) 16%,transparent),0 0 0 1px color-mix(in srgb,#fff 6%,transparent) inset,inset 0 1px color-mix(in srgb,#fff 22%,transparent); }
.ng-game-gate-card::before { content:""; position:absolute; inset:0 0 auto; z-index:-1; height:1px; background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ng-member-ui-accent) 72%,#fff),transparent); opacity:.78; }
.ng-game-gate-card::after { content:""; position:absolute; top:-90px; right:-80px; z-index:-1; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle,color-mix(in srgb,var(--ng-member-ui-accent) 18%,transparent),transparent 68%); pointer-events:none; }
.ng-game-gate-icon { position:relative; display:grid; width:76px; height:76px; margin-bottom:2px; place-items:center; border:1px solid var(--ng-member-ui-border); border-radius:24px; background:var(--ng-shell-icon-bg,color-mix(in srgb,var(--ng-member-ui-accent) 12%,var(--ng-member-ui-control))); box-shadow:0 12px 30px color-mix(in srgb,var(--ng-member-ui-accent) 22%,transparent),inset 0 1px rgba(255,255,255,.18); }
.ng-game-gate-icon::before { content:""; width:58px; height:58px; background:url('/action-icons-ai/v1/login-register.webp') center/contain no-repeat; filter:drop-shadow(0 5px 10px color-mix(in srgb,var(--ng-member-ui-accent) 26%,transparent)); }
.ng-game-gate-kicker { color:var(--ng-member-ui-accent); font-size:12px; font-weight:900; letter-spacing:.18em; }
.ng-game-gate-card strong { color:var(--ng-member-ui-text); font-size:clamp(24px,5vw,30px); font-weight:900; line-height:1.2; letter-spacing:.01em; }
.ng-game-gate-card p { max-width:360px; margin:2px 0 6px; color:var(--ng-member-ui-muted); font-size:15px; line-height:1.75; text-wrap:balance; }
.ng-game-gate-actions { display:grid; width:min(100%,320px); gap:10px; margin-top:4px; }
.ng-game-gate-login,.ng-game-gate-home { display:flex; width:100%; min-height:50px; align-items:center; justify-content:center; padding:0 22px; font:inherit; font-size:14px; font-weight:900; border-radius:calc(var(--ng-shell-radius-small,12px) + 2px); text-decoration:none; cursor:pointer; transition:transform .15s ease,border-color .18s ease,box-shadow .18s ease; }
.ng-game-gate-login { color:var(--ng-member-ui-on-accent); border:1px solid color-mix(in srgb,var(--ng-member-ui-accent) 62%,#fff); background:var(--ng-member-ui-button); box-shadow:0 10px 24px color-mix(in srgb,var(--ng-member-ui-accent) 24%,transparent),inset 0 1px rgba(255,255,255,.18); }
.ng-game-gate-home { min-height:44px; color:var(--ng-member-ui-text); border:1px solid var(--ng-member-ui-border); background:var(--ng-member-ui-control); box-shadow:inset 0 1px color-mix(in srgb,#fff 45%,transparent); }
.ng-game-gate-login:focus-visible,.ng-game-gate-home:focus-visible { outline:3px solid color-mix(in srgb,var(--ng-member-ui-accent) 32%,transparent); outline-offset:3px; }
.ng-game-gate-login:active,.ng-game-gate-home:active { transform:scale(.98); }
@media (hover:hover) { .ng-game-gate-login:hover,.ng-game-gate-home:hover { transform:translateY(-1px); box-shadow:0 13px 28px color-mix(in srgb,var(--ng-member-ui-accent) 24%,transparent); } }
@media (max-width:600px) { .ng-game-gate { padding:14px; } .ng-game-gate-card { width:100%; padding:28px 20px 22px; } .ng-game-gate-icon { width:68px; height:68px; border-radius:20px; } .ng-game-gate-icon::before { width:52px; height:52px; } .ng-game-gate-card p { font-size:14px; } }
@media (max-height:560px) { .ng-game-gate { align-items:flex-start; } .ng-game-gate-card { margin:auto 0; padding-top:24px; padding-bottom:20px; } .ng-game-gate-icon { width:58px; height:58px; } .ng-game-gate-icon::before { width:46px; height:46px; } }
@media (prefers-reduced-motion:reduce) { .ng-game-gate-login,.ng-game-gate-home { transition:none; } }


.ng-auth-options { display:flex; flex-direction:column; gap:6px; }
.ng-auth-option { min-height:38px; padding:8px 14px; color:var(--ng-member-ui-text); font-size:13px; font-weight:800; text-align:left; border:1px solid var(--ng-member-ui-border); border-radius:10px; background:var(--ng-member-ui-control); cursor:pointer; }
.ng-auth-option.is-selected { color:var(--ng-member-ui-on-accent); border-color:color-mix(in srgb,var(--ng-member-ui-accent) 52%,#fff); background:var(--ng-member-ui-button); box-shadow:0 8px 18px color-mix(in srgb,var(--ng-member-ui-accent) 26%,transparent); }

/* Keep optional account recovery settings available without making every
   registration form several screens tall. */
.ng-auth-optional{min-width:0;margin:2px 0 12px;border:1px solid var(--ng-member-ui-border);border-radius:12px;background:var(--ng-member-ui-control)}
.ng-auth-optional>summary{display:flex;min-height:42px;align-items:center;gap:9px;padding:8px 12px;list-style:none;color:var(--ng-member-ui-text);font-size:13px;font-weight:800;cursor:pointer}
.ng-auth-optional>summary::-webkit-details-marker{display:none}
.ng-auth-optional>summary::after{content:"";width:8px;height:8px;margin-left:auto;border-right:2px solid var(--ng-member-ui-muted);border-bottom:2px solid var(--ng-member-ui-muted);transform:rotate(45deg) translate(-2px,-2px);transition:transform .16s ease}
.ng-auth-optional[open]>summary{border-bottom:1px solid var(--ng-member-ui-border)}
.ng-auth-optional[open]>summary::after{transform:rotate(225deg) translate(-2px,-2px)}
.ng-auth-optional>summary:focus-visible{outline:2px solid var(--ng-member-ui-accent);outline-offset:2px}
.ng-auth-optional>.ng-auth-field{margin:10px 12px}
.ng-auth-optional>#ngAuthRegAnswerWrap,.ng-auth-optional>#ngAuthSecAnswerWrap{margin:0 12px 12px}
.ng-auth-optional .ng-auth-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.ng-auth-optional .ng-auth-option{min-height:36px;padding:6px 9px;font-size:12px}
.ng-auth-card[data-ng-auth-mode="register"]{width:min(100%,620px)}
.ng-auth-card[data-ng-auth-mode="security"]{width:min(100%,560px)}
@media(min-width:600px){.ng-auth-pane[data-ng-auth-pane="register"].active{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}.ng-auth-pane[data-ng-auth-pane="register"]>:is(.ng-auth-optional,.ng-auth-captcha,.ng-auth-error,.ng-auth-submit){grid-column:1/-1}.ng-auth-pane[data-ng-auth-pane="register"]>.ng-auth-field{min-width:0}}
@media(max-width:599px){.ng-auth-optional .ng-auth-options{grid-template-columns:1fr}.ng-auth-card[data-ng-auth-mode="register"]{width:min(100%,420px)}}
