/* 亮色主题：CSS 变量 + 通用 body / .app（各页共用 localStorage hetu-user-center-theme） */
html[data-theme='light'] {
  color-scheme: light;
  --bg: #f1f5f9;
  --bg-elevated: #ffffff;
  --border: #cbd5e1;
  --accent: #2563eb;
  --accent-soft: rgba(37, 99, 235, 0.12);
  --text: #0f172a;
  --text-subtle: #64748b;
  --danger: #dc2626;
  --surface-input: #ffffff;
  --surface-muted: #f8fafc;
  --surface-raise: #f1f5f9;
  --surface-shade: #f1f5f9;
  --surface-tab: #f8fafc;
  --surface-pill: #f1f5f9;
  --nav-hover-text: #1e40af;
  --link-bright: #1d4ed8;
  --muted-strong: #1e3a8a;
}
html[data-theme='light'] body {
  background: linear-gradient(180deg, #e2e8f0 0%, #f8fafc 45%, #eef2f7 100%);
}
html[data-theme='light'] .app {
  background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow:
    0 16px 48px rgba(15, 23, 42, 0.1),
    0 0 0 1px rgba(15, 23, 42, 0.04);
}

/* ========== 登录/注册 login.html（body.page-login）：卡片与表单在亮色下不再沿用内联深色底 ========== */
html[data-theme='light'] body.page-login {
  background: linear-gradient(185deg, #e2e8f0 0%, #f1f5f9 42%, #f8fafc 100%);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC',
    'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', sans-serif;
  -webkit-font-smoothing: antialiased;
}

html[data-theme='light'] body.page-login .app {
  background: linear-gradient(155deg, #ffffff 0%, #f8fafc 48%, #f1f5f9 100%);
  border-color: rgba(15, 23, 42, 0.09);
  box-shadow:
    0 20px 56px rgba(15, 23, 42, 0.09),
    0 0 0 1px rgba(15, 23, 42, 0.04);
}

html[data-theme='light'] body.page-login .card {
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow:
    0 22px 48px rgba(15, 23, 42, 0.07),
    0 0 0 1px rgba(255, 255, 255, 0.75) inset;
}

html[data-theme='light'] body.page-login .card h1 {
  color: var(--text);
  font-weight: 700;
  letter-spacing: -0.03em;
}

html[data-theme='light'] body.page-login .card .sub {
  color: var(--text-subtle);
  line-height: 1.55;
}

html[data-theme='light'] body.page-login .brand {
  color: var(--text);
}

html[data-theme='light'] body.page-login .nav a {
  color: #64748b;
}

html[data-theme='light'] body.page-login .nav a:hover {
  color: var(--nav-hover-text);
  border-color: rgba(37, 99, 235, 0.28);
  background: rgba(37, 99, 235, 0.08);
}

html[data-theme='light'] body.page-login .tabs button {
  background: #f8fafc;
  border-color: #cbd5e1;
  color: #475569;
  font-weight: 500;
}

html[data-theme='light'] body.page-login .tabs button.active {
  border-color: #2563eb;
  color: #ffffff;
  background: linear-gradient(180deg, #3b82f6 0%, #2563eb 100%);
  font-weight: 600;
  box-shadow: 0 2px 10px rgba(37, 99, 235, 0.28);
}

html[data-theme='light'] body.page-login .form input {
  background: #ffffff;
  border: 1px solid #94a3b8;
  color: var(--text);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

html[data-theme='light'] body.page-login .form input::placeholder {
  color: #94a3b8;
}

html[data-theme='light'] body.page-login .form input:focus {
  border-color: var(--accent);
  box-shadow:
    0 0 0 3px rgba(37, 99, 235, 0.18),
    0 1px 2px rgba(15, 23, 42, 0.05);
}

html[data-theme='light'] body.page-login .form button[type='submit'] {
  background: linear-gradient(180deg, #3b82f6 0%, #1d4ed8 100%);
  color: #ffffff;
  font-weight: 600;
  box-shadow: 0 4px 16px rgba(37, 99, 235, 0.32);
}

html[data-theme='light'] body.page-login .form-label {
  color: #475569;
  font-weight: 500;
}

html[data-theme='light'] body.page-login .form-row .hint {
  color: #64748b;
}

html[data-theme='light'] body.page-login #btnSendCode {
  background: #f8fafc !important;
  color: var(--text) !important;
  border: 1px solid #94a3b8 !important;
}

html[data-theme='light'] body.page-login #btnSendCode:hover {
  border-color: var(--accent) !important;
  background: #eff6ff !important;
  color: var(--nav-hover-text) !important;
}

html[data-theme='light'] body.page-login .pwd-rule-tip {
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.12);
  color: var(--text);
  box-shadow: 0 14px 40px rgba(15, 23, 42, 0.12);
}

html[data-theme='light'] body.page-login .footer {
  border-top-color: rgba(15, 23, 42, 0.1);
}

html[data-theme='light'] body.page-login .success {
  color: #047857;
}

html[data-theme='light'] main.page,
html[data-theme='light'] .page {
  background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%) !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
  box-shadow:
    0 16px 48px rgba(15, 23, 42, 0.1),
    0 0 0 1px rgba(15, 23, 42, 0.04) !important;
}

/* api-user-sk-docs.html */
html[data-theme='light'] .wrap h1 {
  color: var(--text);
}
html[data-theme='light'] .wrap .lead {
  color: var(--text-subtle);
}
html[data-theme='light'] .wrap .section-lead {
  color: var(--text-subtle);
}
html[data-theme='light'] .wrap .toc {
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, 0.1);
}
html[data-theme='light'] .wrap .toc strong {
  color: var(--text);
}
html[data-theme='light'] .wrap .toc a {
  color: var(--link-bright);
}
html[data-theme='light'] .wrap section {
  background: var(--bg-elevated);
  border-color: rgba(15, 23, 42, 0.1);
}
html[data-theme='light'] .wrap h2 {
  color: var(--muted-strong);
}
html[data-theme='light'] .wrap .h3-section {
  color: #334155;
}
html[data-theme='light'] .wrap .logic-steps,
html[data-theme='light'] .wrap .logic-steps li {
  color: var(--text-subtle);
}
html[data-theme='light'] .wrap code,
html[data-theme='light'] .wrap .inline-code {
  color: #1e293b;
  background: #e2e8f0;
  border-color: #cbd5e1;
}
html[data-theme='light'] .wrap pre {
  background: #f1f5f9;
  border-color: #cbd5e1;
}
html[data-theme='light'] .wrap pre code {
  color: #0f172a;
  background: none;
}
html[data-theme='light'] .wrap .doc-table th {
  background: #e2e8f0;
  color: #1e293b;
}
html[data-theme='light'] .wrap .doc-table td {
  color: #475569;
}
html[data-theme='light'] .wrap .callout {
  background: rgba(37, 99, 235, 0.08);
  border-left-color: var(--accent);
  color: #475569;
}
html[data-theme='light'] .wrap .callout strong {
  color: var(--text);
}
html[data-theme='light'] .wrap .note {
  color: #b45309;
}
html[data-theme='light'] .wrap .code-tab-list {
  border-bottom-color: #cbd5e1;
}
html[data-theme='light'] .wrap .code-tab-list button {
  background: #f8fafc;
  border-color: #cbd5e1;
  color: #475569;
}
html[data-theme='light'] .wrap .code-tab-list button:hover {
  color: var(--nav-hover-text);
  border-color: rgba(37, 99, 235, 0.35);
}
html[data-theme='light'] .wrap .code-tab-list button[aria-selected='true'] {
  background: rgba(37, 99, 235, 0.14);
  border-color: var(--accent);
  color: #1e40af;
}
html[data-theme='light'] .wrap .top a.logo {
  color: var(--text);
}
html[data-theme='light'] .wrap .top nav a {
  color: #64748b;
}
html[data-theme='light'] .wrap .top nav a:hover {
  color: var(--nav-hover-text);
}
html[data-theme='light'] .wrap .top nav a.nav-home {
  color: var(--nav-hover-text);
  border-color: rgba(37, 99, 235, 0.35);
  background: rgba(37, 99, 235, 0.08);
}

/* ========== 主页 index.html：模型下拉、对话气泡、输入区、历史 ========== */
html[data-theme='light'] .app select {
  background: #ffffff;
  color: #0f172a;
  border-color: #94a3b8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
html[data-theme='light'] .app select:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.25);
}
html[data-theme='light'] .app select option,
html[data-theme='light'] .app select optgroup {
  background-color: #ffffff;
  color: #0f172a;
}
html[data-theme='light'] .app .select-wrap::after {
  border-right-color: #475569;
  border-bottom-color: #475569;
}

html[data-theme='light'] .app .panel {
  background: linear-gradient(
    145deg,
    rgba(248, 250, 252, 0.98) 0%,
    rgba(241, 245, 249, 0.96) 100%
  );
  border-color: rgba(15, 23, 42, 0.11);
}

html[data-theme='light'] .app .chat-msg {
  background: #f1f5f9;
  border-color: rgba(15, 23, 42, 0.12);
  color: var(--text);
}
html[data-theme='light'] .app .chat-msg.user {
  background: rgba(37, 99, 235, 0.14);
  border-color: rgba(37, 99, 235, 0.42);
}
html[data-theme='light'] .app .chat-msg.assistant {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.11);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
html[data-theme='light'] .app .chat-msg.error {
  background: rgba(220, 38, 38, 0.09);
  border-color: rgba(220, 38, 38, 0.38);
  color: var(--text);
}

html[data-theme='light'] .app .msg-action-btn {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.14);
  color: #475569;
}
html[data-theme='light'] .app .msg-action-btn:hover {
  border-color: rgba(37, 99, 235, 0.45);
  color: var(--nav-hover-text);
  background: rgba(37, 99, 235, 0.08);
}

html[data-theme='light'] .app .searchbar {
  background: #ffffff;
  box-shadow:
    0 0 0 1px rgba(15, 23, 42, 0.1),
    0 10px 24px rgba(15, 23, 42, 0.08);
}
html[data-theme='light'] .app .searchbar:focus-within {
  box-shadow:
    0 0 0 2px rgba(37, 99, 235, 0.22),
    0 12px 28px rgba(15, 23, 42, 0.1);
}
html[data-theme='light'] .app .searchbar-input {
  color: var(--text);
}
html[data-theme='light'] .app .searchbar-input::placeholder {
  color: #64748b;
}

html[data-theme='light'] .app textarea {
  background: #ffffff;
  border-color: #94a3b8;
  color: var(--text);
}
html[data-theme='light'] .app textarea::placeholder {
  color: #64748b;
}
html[data-theme='light'] .app textarea:focus-visible {
  box-shadow:
    0 0 0 2px rgba(37, 99, 235, 0.25),
    0 0 0 1px rgba(15, 23, 42, 0.06) inset;
}

html[data-theme='light'] .app .auth-input {
  background: #ffffff;
  border-color: #94a3b8;
  color: var(--text);
}
html[data-theme='light'] .app .auth-input::placeholder {
  color: #64748b;
}

html[data-theme='light'] .app .portal-add-row input {
  background: #ffffff;
  border-color: #94a3b8;
  color: var(--text);
}
html[data-theme='light'] .app .portal-add-row input::placeholder {
  color: #64748b;
}
html[data-theme='light'] .app .portal-add-row input:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

/* 管理中心 portal.html：工具栏/筛选、类型下拉、密钥卡、站内信、编辑弹窗（.modal-backdrop 在 .app 外） */
html[data-theme='light'] .app .plans-toolbar input,
html[data-theme='light'] .app .plans-toolbar select {
  background: #ffffff;
  color: #0f172a;
  border: 1px solid #94a3b8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}
html[data-theme='light'] .app .plans-toolbar input::placeholder {
  color: #64748b;
}
html[data-theme='light'] .app .plans-toolbar select option,
html[data-theme='light'] .app .plans-toolbar select optgroup {
  background-color: #ffffff;
  color: #0f172a;
}
html[data-theme='light'] .app .plans-toolbar input:focus-visible,
html[data-theme='light'] .app .plans-toolbar select:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

html[data-theme='light'] .app .portal-type-select {
  background: #ffffff;
  color: #0f172a;
  border: 1px solid #94a3b8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}
html[data-theme='light'] .app .portal-type-select option,
html[data-theme='light'] .app .portal-type-select optgroup {
  background-color: #ffffff;
  color: #0f172a;
}
html[data-theme='light'] .app .portal-type-select:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

html[data-theme='light'] .app .agent-key-card input {
  background: #ffffff;
  color: #0f172a;
  border: 1px solid #94a3b8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}
html[data-theme='light'] .app .agent-key-card input::placeholder {
  color: #64748b;
}
html[data-theme='light'] .app .agent-key-card input:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

/* 监控模块 · 模型用量图表卡片（canvas 内绘图区另见 usageChartTheme） */
html[data-theme='light'] .app .usage-charts-grid .agent-key-card {
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 10px;
  padding: 12px 12px 14px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
html[data-theme='light'] .app .usage-charts-grid .agent-key-card .portal-title {
  color: #334155;
}

html[data-theme='light'] .app .portal-site-msg textarea#portalSiteMsgBody {
  background: #ffffff;
  color: var(--text);
  border-color: #94a3b8;
}
html[data-theme='light'] .app .portal-site-msg textarea#portalSiteMsgBody:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.22);
}
html[data-theme='light'] .app .portal-site-msg .md-preview-wrap {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.12);
  color: var(--text);
}
html[data-theme='light'] .app .portal-site-msg .md-preview-wrap pre {
  background: #e2e8f0;
  color: #334155;
}
html[data-theme='light'] .app .portal-site-msg .md-preview-wrap a {
  color: var(--link-bright);
}

/* 模块标签：选中态用实色底 + 白字，避免浅字贴浅底 */
html[data-theme='light'] .app .center-tabs {
  border-bottom-color: rgba(15, 23, 42, 0.12);
}
html[data-theme='light'] .app .center-tabs a.tab-link {
  color: #475569;
}
html[data-theme='light'] .app .center-tabs a.tab-link:hover {
  color: #1e40af;
  border-color: rgba(37, 99, 235, 0.38);
  background: rgba(37, 99, 235, 0.08);
}
html[data-theme='light'] .app .center-tabs a.tab-link.tab-active {
  color: #ffffff;
  background: #2563eb;
  border-color: #1d4ed8;
  font-weight: 600;
}
html[data-theme='light'] .app .center-tabs a.tab-link.tab-active:hover {
  color: #ffffff;
  background: #1d4ed8;
  border-color: #1e40af;
}

/* 工具栏「搜索 / 新增 / 刷新」等：深蓝字 + 浅蓝底，与选中标签区分 */
html[data-theme='light'] .app .plans-toolbar button:not(.btn-primary) {
  border-color: rgba(37, 99, 235, 0.45);
  background: #eff6ff;
  color: #1e3a8a;
  font-weight: 500;
}
html[data-theme='light'] .app .plans-toolbar button:not(.btn-primary):hover {
  border-color: #2563eb;
  background: #dbeafe;
  color: #172554;
}

/* 站内信息发布：select/部分 input 带内联深色 background，需 !important */
html[data-theme='light'] .app .portal-site-msg select,
html[data-theme='light'] .app #portalSiteMsgForm select {
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid #94a3b8 !important;
}
html[data-theme='light'] .app .portal-site-msg select option,
html[data-theme='light'] .app #portalSiteMsgForm select option {
  background: #ffffff !important;
  color: #0f172a !important;
}
html[data-theme='light'] .app #portalSiteMsgSubject {
  background: #ffffff !important;
  color: #0f172a !important;
  border-color: #94a3b8 !important;
}
html[data-theme='light'] .app #portalVoteOptionsWrap {
  background: #f1f5f9 !important;
  border-color: rgba(15, 23, 42, 0.12) !important;
}
html[data-theme='light'] .app .portal-site-msg .vote-opt-key,
html[data-theme='light'] .app .portal-site-msg .vote-opt-text,
html[data-theme='light'] .app #portalSiteMsgRole,
html[data-theme='light'] .app #portalSiteMsgUser,
html[data-theme='light'] .app #portalMaxSelect {
  background: #ffffff !important;
  color: #0f172a !important;
  border-color: #94a3b8 !important;
}
html[data-theme='light'] .app .portal-site-msg select:focus-visible,
html[data-theme='light'] .app #portalSiteMsgForm select:focus-visible,
html[data-theme='light'] .app #portalSiteMsgSubject:focus-visible {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

html[data-theme='light'] .modal-backdrop {
  background: rgba(15, 23, 42, 0.45);
}
html[data-theme='light'] .modal-backdrop .modal {
  background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
  border-color: rgba(15, 23, 42, 0.12);
  box-shadow:
    0 28px 72px rgba(15, 23, 42, 0.2),
    0 0 0 1px rgba(15, 23, 42, 0.06);
}
html[data-theme='light'] .modal-backdrop .modal-title {
  color: var(--text);
}
html[data-theme='light'] .modal-backdrop .modal-field label {
  color: var(--text-subtle);
}
html[data-theme='light'] .modal-backdrop .modal-field input,
html[data-theme='light'] .modal-backdrop .modal-field select,
html[data-theme='light'] .modal-backdrop .modal-field textarea {
  background: #ffffff;
  color: #0f172a;
  border: 1px solid #94a3b8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}
html[data-theme='light'] .modal-backdrop .modal-field input::placeholder,
html[data-theme='light'] .modal-backdrop .modal-field textarea::placeholder {
  color: #64748b;
}
html[data-theme='light'] .modal-backdrop .modal-field select option,
html[data-theme='light'] .modal-backdrop .modal-field select optgroup {
  background-color: #ffffff;
  color: #0f172a;
}
html[data-theme='light'] .modal-backdrop .modal-field input:focus-visible,
html[data-theme='light'] .modal-backdrop .modal-field select:focus-visible,
html[data-theme='light'] .modal-backdrop .modal-field textarea:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}
html[data-theme='light'] .modal-backdrop .modal-footer button {
  background: #ffffff;
  border-color: #94a3b8;
  color: var(--text);
}
html[data-theme='light'] .modal-backdrop .modal-footer button:hover {
  border-color: rgba(37, 99, 235, 0.45);
  color: var(--nav-hover-text);
}
html[data-theme='light'] .modal-backdrop .modal-footer button.primary {
  border-color: var(--accent);
  background: rgba(37, 99, 235, 0.12);
  color: #1e40af;
}

html[data-theme='light'] .app .attach-btn {
  background: #ffffff;
  border-color: #94a3b8;
  color: #475569;
}
html[data-theme='light'] .app .attach-btn:hover {
  color: var(--nav-hover-text);
  background: rgba(37, 99, 235, 0.07);
}

html[data-theme='light'] .app .icon-btn {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.12);
  color: #475569;
}
html[data-theme='light'] .app .icon-btn:hover {
  color: var(--nav-hover-text);
  background: rgba(37, 99, 235, 0.08);
}

html[data-theme='light'] .app .btn-secondary {
  background: #f1f5f9;
  border-color: rgba(15, 23, 42, 0.12);
  color: var(--text);
}

html[data-theme='light'] .app .model-pill {
  background: #f1f5f9;
  border-color: rgba(15, 23, 42, 0.1);
  color: var(--text);
}

html[data-theme='light'] .app .attachment-pill {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.1);
}

html[data-theme='light'] .app .pill {
  background: #f1f5f9;
  border-color: rgba(15, 23, 42, 0.1);
}
html[data-theme='light'] .app .pill-tag {
  background: #f1f5f9;
  border-color: rgba(15, 23, 42, 0.12);
  color: #475569;
}

html[data-theme='light'] .app .badge {
  color: var(--muted-strong);
  border-color: rgba(37, 99, 235, 0.35);
  background: rgba(37, 99, 235, 0.1);
}

html[data-theme='light'] .app .nav a:hover {
  color: var(--nav-hover-text);
  border-color: rgba(37, 99, 235, 0.28);
  background: rgba(37, 99, 235, 0.08);
}

html[data-theme='light'] .app .auth-btn {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.1);
  color: var(--text-subtle);
}
html[data-theme='light'] .app .auth-btn:hover {
  color: var(--nav-hover-text);
  border-color: rgba(37, 99, 235, 0.35);
}

html[data-theme='light'] .app .ai-disclaimer {
  color: rgba(71, 85, 105, 0.88);
  background: rgba(255, 255, 255, 0.94);
  border-color: rgba(15, 23, 42, 0.1);
}

html[data-theme='light'] .app .hint-pill {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.14);
  color: var(--text-subtle);
}

html[data-theme='light'] .app .history-item {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.1);
}
html[data-theme='light'] .app .history-delete-btn {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.12);
  color: #64748b;
}

html[data-theme='light'] .app .footer a {
  color: var(--link-bright);
}
html[data-theme='light'] .app .footer a:hover {
  color: var(--nav-hover-text);
}

html[data-theme='light'] .history-modal {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.12);
  box-shadow:
    0 22px 50px rgba(15, 23, 42, 0.18),
    0 0 0 1px rgba(15, 23, 42, 0.06);
}

html[data-theme='light'] .auth-modal {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.12);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.16);
}
html[data-theme='light'] .auth-modal-btn {
  background: #f1f5f9;
  border-color: rgba(15, 23, 42, 0.12);
  color: var(--text);
}
html[data-theme='light'] .auth-modal-btn.primary {
  color: #ffffff;
}

html[data-theme='light'] .guestbook-modal-backdrop {
  background: rgba(15, 23, 42, 0.45);
}
html[data-theme='light'] .guestbook-modal input,
html[data-theme='light'] .guestbook-modal textarea {
  background: #ffffff;
  color: var(--text);
}
html[data-theme='light'] .guestbook-modal-actions button {
  background: #f1f5f9;
  color: var(--text);
  border-color: rgba(15, 23, 42, 0.12);
}
html[data-theme='light'] .guestbook-modal-actions button.primary {
  background: rgba(37, 99, 235, 0.12);
  color: #1e40af;
  border-color: rgba(37, 99, 235, 0.45);
}
html[data-theme='light'] .guestbook-modal-msg.ok {
  color: #047857;
}

/* ========== 充值页 user-recharge.html：套餐卡片、表单、弹窗 ========== */
html[data-theme='light'] .app .recharge-shell {
  background: linear-gradient(155deg, #ffffff 0%, #f1f5f9 55%, #f8fafc 100%);
  border-color: rgba(15, 23, 42, 0.1);
  box-shadow:
    0 16px 48px rgba(15, 23, 42, 0.1),
    0 0 0 1px rgba(15, 23, 42, 0.05);
}

html[data-theme='light'] .app .tier-card {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.14);
  color: var(--text);
}
html[data-theme='light'] .app .tier-card:hover {
  border-color: rgba(37, 99, 235, 0.45);
  background: rgba(37, 99, 235, 0.05);
}
html[data-theme='light'] .app .tier-card.selected {
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: 0 0 0 1px var(--accent);
}

html[data-theme='light'] .app .plan-divider {
  background: rgba(15, 23, 42, 0.12);
}

html[data-theme='light'] .app .type-badge {
  background: #f1f5f9;
  border-color: rgba(15, 23, 42, 0.12);
  color: #475569;
}

html[data-theme='light'] .app .tier-model-title {
  color: #64748b;
}

html[data-theme='light'] .app .tier-requests {
  color: var(--text);
}

html[data-theme='light'] .app .tier-price span {
  color: #64748b;
}

html[data-theme='light'] .app .friendly-tip-trigger {
  color: var(--muted-strong);
  border-color: rgba(37, 99, 235, 0.35);
  background: rgba(37, 99, 235, 0.1);
}

html[data-theme='light'] .app .friendly-tip-popover {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.12);
  color: #475569;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
}

html[data-theme='light'] .app .form-group select {
  background: #ffffff;
  color: #0f172a;
  border-color: #94a3b8;
}
html[data-theme='light'] .app .form-group select option,
html[data-theme='light'] .app .form-group select optgroup {
  background-color: #ffffff;
  color: #0f172a;
}

html[data-theme='light'] .app .form-group input[type='date'],
html[data-theme='light'] .app .form-group input[type='text'] {
  background: #ffffff;
  color: var(--text);
  border: 1px solid #94a3b8;
}

html[data-theme='light'] .app .poll-status {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.12);
  color: #475569;
}

html[data-theme='light'] .modal-overlay {
  background: rgba(15, 23, 42, 0.45);
}

html[data-theme='light'] .modal-content {
  background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
  border-color: rgba(15, 23, 42, 0.12);
  box-shadow:
    0 28px 72px rgba(15, 23, 42, 0.2),
    0 0 0 1px rgba(15, 23, 42, 0.06);
}

html[data-theme='light'] .modal-close:hover {
  background: rgba(15, 23, 42, 0.08);
  color: var(--text);
}

/* user-recharge：确认支付弹窗在 .app 外，不与 .app 内规则重叠 */
html[data-theme='light'] #rechargeModal .modal-title {
  color: var(--text);
}
html[data-theme='light'] #rechargeModal .modal-close {
  color: var(--text-subtle);
}
html[data-theme='light'] #rechargeModal .form-group label {
  color: var(--text-subtle);
}
html[data-theme='light'] #rechargeModal .form-group select {
  background: #ffffff;
  color: #0f172a;
  border: 1px solid #94a3b8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
html[data-theme='light'] #rechargeModal .form-group select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.25);
}
html[data-theme='light'] #rechargeModal .form-group select option,
html[data-theme='light'] #rechargeModal .form-group select optgroup {
  background-color: #ffffff;
  color: #0f172a;
}
html[data-theme='light'] #rechargeModal .form-group input[type='date'] {
  background: #ffffff;
  color: var(--text);
  border: 1px solid #94a3b8;
}
html[data-theme='light'] #rechargeModal .plan-info {
  background: rgba(37, 99, 235, 0.08);
  border-color: rgba(37, 99, 235, 0.28);
}
html[data-theme='light'] #rechargeModal .plan-info-title {
  color: var(--text);
}
html[data-theme='light'] #rechargeModal .plan-info-desc {
  color: var(--text-subtle);
}
html[data-theme='light'] #rechargeModal .subscribe-notice {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.12);
}
html[data-theme='light'] #rechargeModal .notice-pill {
  color: var(--muted-strong);
  background: rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.38);
}
html[data-theme='light'] #rechargeModal .subscribe-notice-popover {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.12);
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.16);
}
html[data-theme='light'] #rechargeModal .notice-pop-title {
  color: var(--text);
}
html[data-theme='light'] #rechargeModal .notice-pop-pre {
  color: #475569;
}
html[data-theme='light'] #rechargeModal .notice-pop-link {
  color: var(--link-bright);
}
html[data-theme='light'] #rechargeModal .notice-pop-link:hover {
  color: var(--nav-hover-text);
}
html[data-theme='light'] #rechargeModal .notice-sub {
  color: var(--text-subtle);
}
html[data-theme='light'] #rechargeModal .duration-option label {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.14);
  color: var(--text);
}
html[data-theme='light'] #rechargeModal .duration-option label:hover {
  border-color: rgba(37, 99, 235, 0.4);
  background: rgba(37, 99, 235, 0.05);
}
html[data-theme='light'] #rechargeModal .duration-option input:checked + label {
  border-color: var(--accent);
  background: var(--accent-soft);
}
html[data-theme='light'] #rechargeModal .duration-option .duration-text {
  color: var(--text);
}
html[data-theme='light'] #rechargeModal .price-summary {
  background: rgba(37, 99, 235, 0.09);
  border: 1px solid rgba(37, 99, 235, 0.15);
}
html[data-theme='light'] #rechargeModal .btn-secondary {
  background: #ffffff;
  border-color: #94a3b8;
  color: var(--text);
}
html[data-theme='light'] #rechargeModal .btn-secondary:hover {
  border-color: var(--accent);
  color: var(--nav-hover-text);
}

/* subscription-notice.html：正文不在 .app 内 */
html[data-theme='light'] main.page h1 {
  color: var(--text);
}
html[data-theme='light'] main.page .sub,
html[data-theme='light'] main.page .notice-pre {
  color: #475569;
}
html[data-theme='light'] body > .footer {
  border-top-color: rgba(15, 23, 42, 0.12);
  color: var(--text-subtle);
}
html[data-theme='light'] body > .footer a {
  color: var(--text-subtle);
}
html[data-theme='light'] body > .footer a:hover {
  color: var(--accent);
}

html[data-theme='light'] .mini-toast {
  background: #ffffff;
  color: var(--text);
  border-color: rgba(15, 23, 42, 0.14);
  box-shadow: 0 14px 40px rgba(15, 23, 42, 0.18);
}

html[data-theme='light'] .mini-toast.error {
  background: #fff1f2;
  color: #9f1239;
  border-color: rgba(220, 38, 38, 0.35);
}

html[data-theme='light'] .app .plan-info {
  background: rgba(37, 99, 235, 0.08);
  border-color: rgba(37, 99, 235, 0.28);
}
html[data-theme='light'] .app .plan-info-title {
  color: var(--text);
}

html[data-theme='light'] .app .subscribe-notice {
  background: #f8fafc;
  border-color: rgba(15, 23, 42, 0.12);
}

html[data-theme='light'] .app .notice-pill {
  color: var(--muted-strong);
  background: rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.38);
}

html[data-theme='light'] .app .subscribe-notice-popover {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.12);
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.16);
}

html[data-theme='light'] .app .notice-pop-link {
  color: var(--link-bright);
}

html[data-theme='light'] .app .duration-option label {
  background: #ffffff;
  border-color: rgba(15, 23, 42, 0.14);
  color: var(--text);
}
html[data-theme='light'] .app .duration-option label:hover {
  border-color: rgba(37, 99, 235, 0.4);
  background: rgba(37, 99, 235, 0.05);
}
html[data-theme='light'] .app .duration-option input:checked + label {
  border-color: var(--accent);
  background: var(--accent-soft);
}

html[data-theme='light'] .app .duration-option .duration-text {
  color: var(--text);
}

html[data-theme='light'] .app .price-summary {
  background: rgba(37, 99, 235, 0.09);
  border: 1px solid rgba(37, 99, 235, 0.15);
}

html[data-theme='light'] .app .btn-secondary {
  background: #ffffff;
  border-color: #94a3b8;
  color: var(--text);
}
html[data-theme='light'] .app .btn-secondary:hover {
  border-color: var(--accent);
  color: var(--nav-hover-text);
}

html[data-theme='light'] .app .recharge-table th {
  color: #475569;
}
html[data-theme='light'] .app .recharge-table tbody tr:hover {
  background: rgba(37, 99, 235, 0.07);
}

html[data-theme='light'] .app .recharge-section h2 {
  color: var(--accent);
}

html[data-theme='light'] .app .nav a.active {
  color: var(--nav-hover-text);
  border-color: rgba(37, 99, 235, 0.42);
  background: rgba(37, 99, 235, 0.1);
}

html[data-theme='light'] .pay-qr-modal__amount.is-alipay {
  color: #2563eb;
}
html[data-theme='light'] .pay-qr-modal__amount.is-wechat {
  color: #16a34a;
}

/* ========== portal.html：投票选项输入框 ========== */
html[data-theme='light'] .app .vote-opt-key,
html[data-theme='light'] .app .vote-opt-text {
  background: #ffffff;
  color: #0f172a;
  border-color: #94a3b8;
}
html[data-theme='light'] .app .vote-opt-key:focus-visible,
html[data-theme='light'] .app .vote-opt-text:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}
html[data-theme='light'] .app .vote-opt-remove {
  background: rgba(220, 38, 38, 0.1);
  border-color: rgba(220, 38, 38, 0.5);
  color: #dc2626;
}
html[data-theme='light'] .app .vote-opt-remove:hover {
  background: rgba(220, 38, 38, 0.15);
  border-color: rgba(220, 38, 38, 0.7);
}
html[data-theme='light'] .app #btnAddVoteOption {
  background: rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.5);
  color: #2563eb;
}
html[data-theme='light'] .app #btnAddVoteOption:hover {
  background: rgba(37, 99, 235, 0.15);
  border-color: rgba(37, 99, 235, 0.7);
}

/* 站内信息表单输入框 */
html[data-theme='light'] .app #portalSiteMsgSubject,
html[data-theme='light'] .app #portalSiteMsgRole,
html[data-theme='light'] .app #portalSiteMsgUser,
html[data-theme='light'] .app #portalMaxSelect {
  background: #ffffff;
  color: #0f172a;
  border-color: #94a3b8;
}
html[data-theme='light'] .app #portalSiteMsgSubject:focus-visible,
html[data-theme='light'] .app #portalSiteMsgRole:focus-visible,
html[data-theme='light'] .app #portalSiteMsgUser:focus-visible,
html[data-theme='light'] .app #portalMaxSelect:focus-visible {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}
html[data-theme='light'] .app #portalSiteMsgKind,
html[data-theme='light'] .app #portalSiteMsgTarget,
html[data-theme='light'] .app #portalVoteType {
  background: #ffffff !important;
  color: #0f172a !important;
  border-color: #94a3b8 !important;
}
html[data-theme='light'] .app #portalSiteMsgKind:focus-visible,
html[data-theme='light'] .app #portalSiteMsgTarget:focus-visible,
html[data-theme='light'] .app #portalVoteType:focus-visible {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}
html[data-theme='light'] .app #portalSiteMsgKind option,
html[data-theme='light'] .app #portalSiteMsgTarget option,
html[data-theme='light'] .app #portalVoteType option {
  background: #ffffff !important;
  color: #0f172a !important;
}
html[data-theme='light'] .app #portalVoteOptionsWrap {
  background: #f1f5f9;
  border-color: rgba(15, 23, 42, 0.12);
}
