.member-login-modal { width: min(1152px, calc(100vw - 40px)); max-width: none; max-height: calc(100dvh - 40px); padding: 0; overflow: auto; border: 1px solid #dbe5ef; border-radius: 14px; background: #fff; box-shadow: 0 24px 80px rgba(0,0,0,.25); }
.member-login-modal::backdrop { background: rgba(10,20,35,.55); backdrop-filter: blur(3px); }
.member-login-close { position: sticky; z-index: 2; float: right; top: 8px; right: 8px; margin: 8px 8px -40px 0; width: 32px; height: 32px; border: 0; background: #edf2f7; color: #364658; border-radius: 50%; cursor: pointer; }
.member-login-close:focus-visible { outline: 2px solid #0071e3; outline-offset: 2px; }
@media (max-width: 900px) { .member-login-modal { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); } }
.member-public-record { margin-top: auto; padding: 8px 16px; text-align: center; font-size: 12px; }
.member-public-record a { color: #708399; text-decoration: none; }
.member-policy-links { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 16px; margin-top:8px; }
.member-policy-links a { display:inline-flex; padding:2px 4px; }

.member-login-content { display:block; clear:none; background:#fff; }
.member-login-ending { width:100%; padding:14px 24px; background:#fff; border-top:1px solid #edf0f4; color:#7b8697; text-align:center; font-size:12px; box-sizing:border-box; }
.main-area:has(> .member-public-record) { display:flex !important; flex-direction:column; }
.member-public-record { width:100%; flex-shrink:0; padding:18px 16px; border-top:1px solid #e6e9ef; background:var(--surface,#f8fafc); }
.member-public-record a { display:inline-flex; align-items:center; justify-content:center; gap:6px; font-size:12px; line-height:1.7; color:#738096; transition:color 0.2s ease; }
.member-public-record a:hover { color:#087cf0; }
.icp-gov-badge { flex-shrink:0; display:inline-block; vertical-align:middle; }

:root[data-theme="dark"] .member-login-modal {
  border-color: rgba(137, 166, 205, 0.2);
  background: #0d1e33;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.65);
}
:root[data-theme="dark"] .member-login-modal::backdrop {
  background: rgba(4, 10, 18, 0.75);
}
:root[data-theme="dark"] .member-login-close {
  background: rgba(255, 255, 255, 0.1);
  color: #c9d8e8;
}
:root[data-theme="dark"] .member-login-close:hover {
  background: rgba(255, 255, 255, 0.18);
  color: #ffffff;
}
:root[data-theme="dark"] .member-login-content {
  background: #0d1e33;
}
:root[data-theme="dark"] .member-login-ending {
  background: #091626;
  border-top-color: rgba(137, 166, 205, 0.15);
  color: #8fa2b8;
}
:root[data-theme="dark"] .member-public-record {
  border-top-color: rgba(137, 166, 205, 0.15);
  background: #061321;
}
:root[data-theme="dark"] .member-public-record a {
  color: #8fa2b8;
}

/* The authentication panel keeps its reference black/white surfaces in both site themes. */
.member-login-modal .member-login-content {background:#fff;}
.member-login-modal .member-login-close {position:sticky;float:right;right:8px;top:8px;margin:8px 8px -40px 0;background:transparent;color:#777;font-size:18px;}
html:has(.member-login-modal[open]),body:has(.member-login-modal[open]) {overflow:hidden;}
:root[data-theme="dark"] .member-login-modal .member-login-close {background:transparent;color:#777;}
@media(max-width:980px) {
  .sidebar #sidebarAccountTrigger {display:flex !important;padding:4px !important;flex:0 0 auto !important;}
}
@media(min-width:901px) and (max-height:680px) {
  .member-login-modal {width:min(1152px,calc(100vw - 18px));max-height:calc(100dvh - 18px);}
}

/* 窄屏弹层使用自身滚动，软键盘/短屏下仍能访问完整表单。 */
@media (max-width: 600px) {
  .member-login-modal {
    box-sizing: border-box;
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    margin: auto;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .member-login-content { min-width: 0; }
}

.member-policy-links {display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-top:8px;}
.member-policy-links a:focus-visible {outline:2px solid #087cf0;outline-offset:3px;text-decoration:underline;}
/* Keep dismissal outside the scrolling Shadow DOM, including soft-keyboard viewports. */
.member-login-modal { overflow:hidden; }
.member-login-modal .member-login-content { max-height:calc(100dvh - 42px); overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.member-login-modal .member-login-close,
:root[data-theme="dark"] .member-login-modal .member-login-close { position:absolute; float:none; top:8px; right:8px; z-index:20; margin:0; width:44px; height:44px; background:#fff; color:#334155; box-shadow:0 2px 10px #0002; touch-action:manipulation; }
@media(max-width:600px) {
  .member-login-modal {overflow:hidden;}
  .member-login-modal .member-login-content { max-height:calc(100dvh - 18px); }
}

.qiwei-policy-dialog { width:min(760px,calc(100vw - 28px)); max-width:none; max-height:min(82dvh,820px); padding:0; overflow:hidden; border:1px solid #344155; border-radius:16px; background:#111827; color:#e6edf7; box-shadow:0 24px 80px #0009; }
.qiwei-policy-dialog::backdrop { background:rgba(3,8,18,.72); backdrop-filter:blur(4px); }
.qiwei-policy-card { display:flex; max-height:min(82dvh,820px); flex-direction:column; }
.qiwei-policy-header { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px; border-bottom:1px solid #344155; background:#111827; }
.qiwei-policy-header h2 { margin:0; font-size:18px; line-height:1.4; }
.qiwei-policy-close { flex:0 0 38px; width:38px; height:38px; border:1px solid #475569; border-radius:50%; background:#1f2937; color:#e6edf7; font-size:18px; cursor:pointer; }
.qiwei-policy-close:focus-visible { outline:2px solid #38bdf8; outline-offset:2px; }
.qiwei-policy-content { overflow:auto; padding:20px 24px 28px; overscroll-behavior:contain; line-height:1.8; }
.qiwei-policy-content section h2 { margin:0 0 18px; padding:0; border:0; font-size:22px; }
.qiwei-policy-content h3 { margin:20px 0 6px; font-size:16px; }
.qiwei-policy-content p { margin:6px 0 14px; color:#c5d0df; }
.qiwei-policy-content a { color:#60a5fa; text-underline-offset:3px; }
:root[data-theme="white"] .qiwei-policy-dialog { border-color:#dbe3ed; background:#fff; color:#263448; box-shadow:0 24px 80px #15243a40; }
:root[data-theme="white"] .qiwei-policy-header { border-bottom-color:#e5eaf1; background:#fff; }
:root[data-theme="white"] .qiwei-policy-close { border-color:#d5dde8; background:#f2f5f9; color:#334155; }
:root[data-theme="white"] .qiwei-policy-content p { color:#526174; }
@media(max-width:600px) { .qiwei-policy-dialog,.qiwei-policy-card { max-height:calc(100dvh - 24px); } .qiwei-policy-content { padding:16px 18px 24px; } }

/* Ordinary DOM stacking allows the official CAPTCHA popup above the login panel. */
.member-login-backdrop {position:fixed;inset:0;z-index:99990;background:rgba(10,20,35,.55);backdrop-filter:blur(3px);touch-action:none;}
.member-login-backdrop[hidden] {display:none;}
.member-login-modal {position:fixed;inset:0;margin:auto;z-index:99991;}
