/*
 * 深色模式（p14-appearance）。
 * html[data-theme="dark"] 由 locale-bootstrap.js 在样式表加载前设置（跟随系统 / 手动），
 * 这里重定义 site.css 的 :root 变量，并逐条覆盖 site.css 里写死的浅色（背景、边框、阴影、输入框、
 * 弹窗、菜单、气泡、滚动条、代码块等）。强调色相关的覆盖在 appearance.css。
 * 本身就是深色的界面（通话、图片查看器、消息长按菜单、提示条）保持原样。
 * 二维码卡片保持白底，保证能被扫出来。
 */
html[data-theme="dark"] {
  color-scheme: dark;
  --ink: #e7e9f0;
  --text: #e7e9f0;
  --muted: #8e94a8;
  --muted-2: #636a7d;
  --surface: #1b1e27;
  --canvas: #12141a;
  --line: #2a2e3a;
  --success: #3ccf6e;
  --danger: #ff5b6b;
  --warning: #f3b04b;
  --shadow: 0 20px 65px rgba(0, 0, 0, .55);
  --soft-shadow: 0 8px 28px rgba(0, 0, 0, .28);
  /* 深色专用的层级色 */
  --ap-page: #0d0f14;
  --ap-surface-2: #232733;
  --ap-surface-3: #2b3040;
  --ap-line-soft: #232631;
  --ap-line-strong: #353a48;
  --ap-hover: rgba(255, 255, 255, .045);
  --ap-placeholder: #6b7184;
  --ap-chat-bg: #0f1116;
  --ap-bubble-in: #1f2330;
  --ap-bubble-in-line: #292d3a;
  --ap-bar: rgba(22, 24, 31, .97);
  background: var(--ap-page);
}

/* 页面底色与装饰 */
html[data-theme="dark"] body { background: linear-gradient(150deg, #0f1117 0%, #0b0d12 100%); }
html[data-theme="dark"] .orb-one { background: radial-gradient(circle, rgba(124, 134, 255, .16) 0%, rgba(124, 134, 255, 0) 70%); }
html[data-theme="dark"] .orb-two { background: radial-gradient(circle, rgba(60, 203, 170, .1) 0%, rgba(60, 203, 170, 0) 70%); }
html[data-theme="dark"] .app-shell { border-color: rgba(255, 255, 255, .06); }
html[data-theme="dark"] .content-scroll,
html[data-theme="dark"] .messages-stream,
html[data-theme="dark"] .modal-body { scrollbar-color: #3a3f4d transparent; }

/* 通用按钮 */
html[data-theme="dark"] .secondary-button { background: var(--ap-surface-2); }
html[data-theme="dark"] .secondary-button:hover { background: var(--ap-surface-3); }

/* 登录 / 注册 */
html[data-theme="dark"] .auth-view { background: linear-gradient(180deg, #181b29 0%, #14161d 46%, #14161d 100%); }
html[data-theme="dark"] .language-trigger { border-color: var(--line); color: var(--muted); background: rgba(255, 255, 255, .04); }
html[data-theme="dark"] .current-language-flag,
html[data-theme="dark"] .language-flag { border-color: rgba(255, 255, 255, .12); box-shadow: none; }
html[data-theme="dark"] .bubble-small { border-color: #181b29; }
html[data-theme="dark"] .input-field { background: var(--surface); box-shadow: none; }
html[data-theme="dark"] .input-field input::placeholder,
html[data-theme="dark"] .search-box input::placeholder,
html[data-theme="dark"] .add-friend-searchbox input::placeholder,
html[data-theme="dark"] .text-input::placeholder,
html[data-theme="dark"] .text-area::placeholder,
html[data-theme="dark"] .message-input::placeholder,
html[data-theme="dark"] .media-preview-caption::placeholder,
html[data-theme="dark"] .conversation-picker-search input::placeholder { color: var(--ap-placeholder); }
html[data-theme="dark"] .remembered-account-toggle,
html[data-theme="dark"] .password-toggle { color: var(--muted); }
html[data-theme="dark"] .remembered-account-menu { border-color: var(--line); background: var(--surface); box-shadow: 0 18px 40px rgba(0, 0, 0, .45); }
html[data-theme="dark"] .privacy-consent,
html[data-theme="dark"] .auth-switch { color: var(--muted); }

/* 二级密码伪装计算器：深色版（照 Windows 计算器深色） */
html[data-theme="dark"] .privacy-calculator { background: #202020; color: #f3f3f3; }
html[data-theme="dark"] .calculator-icon-button { color: #e6e6e6; }
html[data-theme="dark"] .calculator-memory { color: #d6d6d6; }
html[data-theme="dark"] .calculator-memory span:nth-child(-n+2),
html[data-theme="dark"] .calculator-memory span:last-child { color: #777; }
html[data-theme="dark"] .calculator-keypad button { border-color: #2c2c2c; background: #323232; color: #f3f3f3; box-shadow: 0 1px 1px rgba(0, 0, 0, .4); }
html[data-theme="dark"] .calculator-keypad button:nth-child(n+9):not(:nth-child(4n)),
html[data-theme="dark"] .calculator-keypad button:nth-child(22) { background: #3b3b3b; }
html[data-theme="dark"] .calculator-keypad button:active { background: #2a2a2a; }
html[data-theme="dark"] .calculator-keypad .calculator-equals { border-color: #4cc2ff; background: #4cc2ff; color: #0b0b0b; }
html[data-theme="dark"] .calculator-keypad .calculator-equals:active { background: #3aa8e0; }

/* 顶栏、底部导航、分组标签 */
html[data-theme="dark"] .app-header { border-block-end-color: rgba(255, 255, 255, .05); background: rgba(22, 24, 31, .92); }
html[data-theme="dark"] .bottom-nav { background: rgba(22, 24, 31, .96); }
html[data-theme="dark"] .nav-item { color: #8a90a3; }
html[data-theme="dark"] .nav-notice { border-color: var(--surface); }
html[data-theme="dark"] .chat-folder-tab { border-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .chat-folder-tab:hover { border-color: var(--ap-line-strong); background: var(--ap-surface-2); }

/* 搜索与加好友 */
html[data-theme="dark"] .search-box { border-color: var(--line); background: var(--surface); box-shadow: none; }
html[data-theme="dark"] .add-friend-searchbar { background: var(--surface); }
html[data-theme="dark"] .add-friend-searchbox { border-color: var(--line); color: var(--muted); background: var(--ap-surface-2); }
html[data-theme="dark"] .add-friend-searchbox:focus-within { background: var(--ap-surface-2); }
html[data-theme="dark"] .add-friend-result-list { border-color: var(--line); background: var(--surface); box-shadow: none; }
html[data-theme="dark"] .add-friend-result + .add-friend-result { border-block-start-color: var(--ap-line-soft); }
html[data-theme="dark"] .add-friend-empty > svg,
html[data-theme="dark"] .all-members-empty svg { color: var(--muted-2); }
html[data-theme="dark"] .friend-search-loading span { border-color: var(--line); border-block-start-color: var(--primary); }
html[data-theme="dark"] .section-caption,
html[data-theme="dark"] .search-found { color: #8a90a3; }
html[data-theme="dark"] .search-local-only { color: #f0c36a; background: rgba(240, 170, 40, .12); }
html[data-theme="dark"] .search-media-cell.is-video { background: #0b0d14; }

/* 列表 */
html[data-theme="dark"] .list-card { border-color: var(--line); box-shadow: none; }
html[data-theme="dark"] .conversation-row + .conversation-row,
html[data-theme="dark"] .contact-row + .contact-row,
html[data-theme="dark"] .group-row + .group-row,
html[data-theme="dark"] .friend-request-row + .friend-request-row { border-block-start-color: var(--ap-line-soft); }
html[data-theme="dark"] .conversation-row:hover,
html[data-theme="dark"] .contact-row:hover,
html[data-theme="dark"] .group-row:hover { background: var(--ap-hover); }
html[data-theme="dark"] .pin-indicator { color: #7d8499; }
html[data-theme="dark"] .presence { border-color: var(--surface); }
html[data-theme="dark"] .group-avatar { background: var(--ap-surface-2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06); }
html[data-theme="dark"] .group-avatar.has-image { background: var(--ap-surface-2); }
html[data-theme="dark"] .row-time,
html[data-theme="dark"] .mute-indicator { color: #6f7588; }
html[data-theme="dark"] .row-preview { color: #8a90a3; }
html[data-theme="dark"] .chevron { color: #5d6375; }
html[data-theme="dark"] .empty-illustration { border-color: var(--line); color: var(--muted); background: linear-gradient(145deg, #232733, #1a1d26); box-shadow: 0 16px 30px rgba(0, 0, 0, .35); }

/* 我的 */
html[data-theme="dark"] .profile-card { border-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .camera-dot { border-color: var(--surface); }
html[data-theme="dark"] .menu-card { border-color: var(--line); background: var(--surface); box-shadow: none; }
html[data-theme="dark"] .menu-item + .menu-item { border-block-start-color: var(--ap-line-soft); }
html[data-theme="dark"] .web-account-remove:hover { background: rgba(255, 91, 107, .12); }
html[data-theme="dark"] .logout-button { border-color: rgba(255, 91, 107, .22); background: rgba(255, 91, 107, .08); }
html[data-theme="dark"] .avatar-editor { border-color: var(--line); background: var(--ap-surface-2); }

/* 聊天界面 */
html[data-theme="dark"] .chat-screen { background: var(--ap-chat-bg); }
html[data-theme="dark"] .chat-drop-overlay { background: rgba(20, 22, 30, .94); box-shadow: 0 14px 34px rgba(0, 0, 0, .45); }
html[data-theme="dark"] .chat-translation-bar { border-block-start-color: var(--line); border-block-end-color: var(--line); background: var(--ap-bar); }
html[data-theme="dark"] .chat-translation-settings:hover,
html[data-theme="dark"] .chat-translation-settings:focus-visible { background: var(--ap-hover); }
html[data-theme="dark"] .chat-translation-icon { background: var(--ap-surface-2); }
html[data-theme="dark"] .chat-translation-settings > i { color: var(--muted-2); }
html[data-theme="dark"] .chat-translation-provider { border-color: var(--line); background: var(--ap-surface-2); }
html[data-theme="dark"] .chat-pinned-message { border-block-end-color: var(--line); background: rgba(27, 30, 39, .98); box-shadow: 0 3px 12px rgba(0, 0, 0, .25); }
html[data-theme="dark"] .new-message-jump-button { background: rgba(35, 39, 51, .98); box-shadow: 0 9px 24px rgba(0, 0, 0, .45); }
html[data-theme="dark"] .new-message-jump-button:hover { background: #2a2f3d; }
html[data-theme="dark"] .new-message-jump-button i { border-color: var(--surface); }
html[data-theme="dark"] .date-divider { color: #7d8396; }
html[data-theme="dark"] .system-message-pill { color: #b5bacb; background: rgba(40, 44, 58, .9); }
html[data-theme="dark"] .message-select-indicator { border-color: #5d6375; background: var(--surface); box-shadow: 0 3px 10px rgba(0, 0, 0, .3); }
html[data-theme="dark"] .message-reaction-pill { border-color: var(--line); color: #c3c8d8; background: var(--ap-surface-2); box-shadow: none; }
html[data-theme="dark"] .message-reaction-pill:hover,
html[data-theme="dark"] .message-reaction-pill:focus-visible { border-color: var(--ap-line-strong); background: var(--ap-surface-3); }
html[data-theme="dark"] .avatar.message-reaction-avatar { border-color: var(--ap-surface-2); }
html[data-theme="dark"] .sender-name { color: #8a90a3; }
html[data-theme="dark"] .message-bubble { border-color: var(--ap-bubble-in-line); background: var(--ap-bubble-in); box-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
html[data-theme="dark"] .message-line.mine .message-selectable-text::selection,
html[data-theme="dark"] .message-line.mine .message-selectable-text *::selection { background: rgba(0, 0, 0, .45); }
html[data-theme="dark"] .message-line.is-mentioned:not(.mine) .message-bubble { box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 18%, transparent), 0 1px 2px rgba(0, 0, 0, .25); }
html[data-theme="dark"] .message-bubble.has-image { background: var(--ap-bubble-in); }
html[data-theme="dark"] .message-translation-divider { background: rgba(255, 255, 255, .12); }
html[data-theme="dark"] .location-message { background: var(--ap-bubble-in); }
html[data-theme="dark"] .location-confirmation { background: var(--surface); }
html[data-theme="dark"] .message-reply-preview,
html[data-theme="dark"] .message-bubble.has-image .message-reply-preview { background: rgba(255, 255, 255, .06); }
html[data-theme="dark"] .image-message { background: #1a1d26; }
html[data-theme="dark"] .message-time { color: #6f7588; }
html[data-theme="dark"] .read-status { color: #7d8396; }
html[data-theme="dark"] .message-bubble .bot-pre { background: rgba(255, 255, 255, .06); }
html[data-theme="dark"] .message-bubble .bot-spoiler { background: #4a5062; }
html[data-theme="dark"] .message-bubble .bot-spoiler.is-revealed { background: rgba(255, 255, 255, .06); }
html[data-theme="dark"] .message-bubble .bot-code.is-copyable { color: #74b4ff; }
html[data-theme="dark"] .message-bubble .bot-code.is-copyable:hover { background: rgba(116, 180, 255, .12); }
html[data-theme="dark"] .bot-inline-button { border-color: var(--line); background: rgba(35, 39, 51, .94); }
html[data-theme="dark"] .bot-reply-keyboard { border-block-start-color: var(--line); background: #161921; }
html[data-theme="dark"] .bot-reply-button { background: var(--ap-surface-2); box-shadow: 0 1px 2px rgba(0, 0, 0, .3); }
html[data-theme="dark"] .bot-inline-button.is-style-success,
html[data-theme="dark"] .bot-reply-button.is-style-success,
html[data-theme="dark"] .bot-inline-button.is-style-danger,
html[data-theme="dark"] .bot-reply-button.is-style-danger,
html[data-theme="dark"] .bot-inline-button.is-style-primary,
html[data-theme="dark"] .bot-reply-button.is-style-primary { box-shadow: none; }

/* 输入区 */
html[data-theme="dark"] .chat-compose-wrap,
html[data-theme="dark"] .chat-compose { border-block-start-color: var(--line); background: var(--ap-bar); }
html[data-theme="dark"] .chat-compose-wrap .chat-compose { background: transparent; }
html[data-theme="dark"] .mention-picker { border-block-end-color: var(--line); background: var(--surface); box-shadow: 0 -10px 28px rgba(0, 0, 0, .35); }
html[data-theme="dark"] .message-selection-toolbar { border-block-start-color: var(--line); background: rgba(22, 24, 31, .98); box-shadow: 0 -8px 24px rgba(0, 0, 0, .3); }
html[data-theme="dark"] .chat-send-disabled { color: #ff8f9b; background: rgba(255, 91, 107, .12); border-block-end-color: rgba(255, 91, 107, .2); }
html[data-theme="dark"] .chat-compose .message-input:disabled { background: #1a1d26; }
html[data-theme="dark"] .composer-reply { border-block-end-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .chat-compose .icon-button { color: #8a90a3; }
html[data-theme="dark"] .chat-compose .icon-button:hover { color: var(--primary); }
html[data-theme="dark"] .voice-recording-strip { border-color: rgba(255, 91, 107, .3); color: #ff8f9b; background: rgba(255, 91, 107, .1); }
html[data-theme="dark"] .voice-recording-hint { color: #8a90a3; }
html[data-theme="dark"] .voice-recording-strip.is-cancelling { color: #fff; background: var(--danger); }
html[data-theme="dark"] .composer-translation-preview { border-color: var(--line); background: var(--ap-surface-2); }
html[data-theme="dark"] .composer-translation-preview.is-failed { border-color: rgba(255, 91, 107, .35); background: rgba(255, 91, 107, .08); }
html[data-theme="dark"] .message-input-shell,
html[data-theme="dark"] .message-input { background: var(--ap-surface-2); }
html[data-theme="dark"] .message-input { border-color: var(--ap-line-strong); }
html[data-theme="dark"] .message-input-shell.has-emoji-preview .message-input { background: transparent; }
html[data-theme="dark"] .composer-panel { border-block-start-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .emoji-category-tabs { border-block-end-color: var(--line); background: rgba(27, 30, 39, .97); }
html[data-theme="dark"] .emoji-category-tab,
html[data-theme="dark"] .emoji-grid button,
html[data-theme="dark"] .sticker-grid > button { background: var(--ap-surface-2); }
html[data-theme="dark"] .attachment-grid button { color: #a3a9bb; background: var(--ap-surface-2); }
html[data-theme="dark"] .album-source-option { border-color: var(--line); background: var(--ap-surface-2); }

/* 长按菜单、转发选择 */
html[data-theme="dark"] .message-action-scrim { background: rgba(0, 0, 0, .3); }
html[data-theme="dark"] .message-action-menu { border-color: rgba(255, 255, 255, .09); background: #1f2330; box-shadow: 0 18px 46px rgba(0, 0, 0, .55); }
html[data-theme="dark"] .forward-target { border-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .forward-target:hover,
html[data-theme="dark"] .forward-target:focus-visible { background: var(--ap-surface-2); }
html[data-theme="dark"] .forward-target > svg { color: var(--muted-2); }
html[data-theme="dark"] .conversation-picker-search { border-color: var(--line); background: var(--ap-surface-2); }
html[data-theme="dark"] .conversation-picker-search:focus-within { background: var(--ap-surface-2); }
html[data-theme="dark"] .conversation-picker-search > svg { color: var(--muted); }
html[data-theme="dark"] .conversation-picker-check { border-color: #4a5062; }

/* 弹窗 */
html[data-theme="dark"] .modal-scrim { background: rgba(0, 0, 0, .55); }
html[data-theme="dark"] .modal-card { background: var(--surface); box-shadow: 0 30px 90px rgba(0, 0, 0, .6); }
html[data-theme="dark"] .modal-close { color: #a3a9bb; }
html[data-theme="dark"] .modal-close:hover { background: var(--ap-surface-2); }
html[data-theme="dark"] .modal-footer { background: var(--surface); }
html[data-theme="dark"] .talky-qr-code { border-color: var(--line); }
html[data-theme="dark"] .message-reaction-user { border-color: var(--line); background: var(--ap-surface-2); }
html[data-theme="dark"] .media-preview-modal .modal-body { background: var(--canvas); }
html[data-theme="dark"] .media-preview-item,
html[data-theme="dark"] .media-preview-add { background: var(--ap-surface-2); }
html[data-theme="dark"] .media-preview-item { box-shadow: 0 7px 20px rgba(0, 0, 0, .35); }
html[data-theme="dark"] .media-preview-add { border-color: #3a3f4d; background: var(--surface); }
html[data-theme="dark"] .media-preview-file { background: var(--surface); box-shadow: none; }
html[data-theme="dark"] .media-preview-file-remove { background: rgba(255, 91, 107, .12); }
html[data-theme="dark"] .media-preview-file-add { border-color: #3a3f4d; background: rgba(255, 255, 255, .03); }
html[data-theme="dark"] .media-preview-caption { border-color: var(--ap-line-strong); background: var(--surface); }
html[data-theme="dark"] .media-preview-selection.is-uploading .media-preview-grid::after,
html[data-theme="dark"] .media-preview-selection.is-uploading .media-preview-file-list::after { background: rgba(0, 0, 0, .45); }

/* 表单与设置 */
html[data-theme="dark"] .field-group > label { color: #9aa0b2; }
html[data-theme="dark"] .text-input,
html[data-theme="dark"] .text-area { border-color: var(--ap-line-strong); background: var(--ap-surface-2); }
html[data-theme="dark"] .text-input:focus,
html[data-theme="dark"] .text-area:focus { background: var(--ap-surface-2); }
html[data-theme="dark"] .email-current > span:first-child { background: var(--surface); }
html[data-theme="dark"] .settings-menu-card { border-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .settings-menu-row { background: var(--surface); }
html[data-theme="dark"] .settings-menu-row + .settings-menu-row { border-block-start-color: var(--ap-line-soft); }
html[data-theme="dark"] .settings-menu-row:hover { background: var(--ap-surface-2); }
html[data-theme="dark"] .settings-toggle-row.is-disabled:hover { background: var(--surface); }
html[data-theme="dark"] .language-option { border-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .language-option:hover { background: var(--ap-surface-2); }
html[data-theme="dark"] .language-code { color: #9aa0b2; background: var(--ap-surface-2); }
html[data-theme="dark"] .language-flag { background: var(--ap-surface-2); }
html[data-theme="dark"] .member-option { border-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .member-check { border-color: #4a5062; }
html[data-theme="dark"] .chat-folder-manage-row { border-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .scheduled-message-card { box-shadow: none; }
html[data-theme="dark"] .scheduled-message-main:hover,
html[data-theme="dark"] .scheduled-message-main:focus-visible { background: var(--ap-surface-2); }
html[data-theme="dark"] .scheduled-message-delete { background: var(--surface); }
html[data-theme="dark"] .scheduled-message-delete:hover,
html[data-theme="dark"] .scheduled-message-delete:focus-visible { background: rgba(255, 91, 107, .1); }
html[data-theme="dark"] .translation-settings-form .translation-toggle { border-color: var(--line); }

/* 资料页（详情弹窗） */
html[data-theme="dark"] .details-modal .modal-header { background: var(--surface); }
html[data-theme="dark"] .details-modal .modal-body { background: var(--canvas); }
html[data-theme="dark"] .detail-profile,
html[data-theme="dark"] .detail-action-stack,
html[data-theme="dark"] .detail-member-grid { background: var(--surface); }
html[data-theme="dark"] .detail-row,
html[data-theme="dark"] .detail-primary-action,
html[data-theme="dark"] .detail-danger-action,
html[data-theme="dark"] .group-detail-summary { border-block-end-color: var(--ap-line-soft); background: var(--surface); }
html[data-theme="dark"] .detail-row > i:not(.switch-control) { color: var(--muted-2); }
html[data-theme="dark"] .detail-primary-action { color: #8ab4f0; }
html[data-theme="dark"] .switch-control { border-color: var(--ap-line-strong); background: #2f3442; }
html[data-theme="dark"] .switch-control::after { background: #f2f3f7; box-shadow: 0 2px 7px rgba(0, 0, 0, .45); }
html[data-theme="dark"] .member-tool > span { border-color: #3a3f4d; color: #8a90a3; background: var(--ap-surface-2); }
html[data-theme="dark"] .group-member-action { border-color: var(--line); background: var(--surface); }
html[data-theme="dark"] .group-member-action.is-danger { border-color: color-mix(in srgb, var(--danger) 35%, var(--surface)); }

/* 确认框、提示 */
html[data-theme="dark"] .confirm-card { background: var(--surface); box-shadow: 0 30px 90px rgba(0, 0, 0, .6); }
html[data-theme="dark"] .confirm-icon { background: rgba(255, 91, 107, .12); }
html[data-theme="dark"] .confirm-option { border-color: var(--line); background: var(--ap-surface-2); }
html[data-theme="dark"] .toast { border-color: rgba(255, 255, 255, .08); background: #2a2e3b; box-shadow: 0 15px 36px rgba(0, 0, 0, .45); }

/* 通话（本身是深色，只把背后遮罩调深一点） */
html[data-theme="dark"] .call-layer { background: rgba(5, 6, 12, .78); }

@media print {
  html[data-theme="dark"].is-screenshot-protected body::after { background: #12141a; }
}
