/* 自动生成：node scripts/night/build.mjs，勿手改；手调写在 scripts/night/extra-chat.css */
html.night {
    --bg: rgb(18,17,23) !important;
    --surface: rgba(19,19,19,0.72) !important;
    --card: rgba(19,19,19,0.58) !important;
    --rose: rgb(32,25,28) !important;
    --rose-deep: rgb(139,138,140) !important;
    --lav: rgb(31,26,31) !important;
    --lav-deep: rgb(122,128,143) !important;
    --mint: rgb(24,30,34) !important;
    --mint-deep: rgb(120,132,152) !important;
    --gold: rgb(128,126,130) !important;
    --cream: rgb(24,26,21) !important;
    --text: rgb(175,175,175) !important;
    --text-m: rgb(168,168,169) !important;
    --text-l: rgb(139,138,140) !important;
    --accent: rgb(133,119,146) !important;
    --accent-light: rgb(25,22,28) !important;
    --user-bubble: rgb(31,26,31) !important;
    --ai-bubble: rgba(19,19,19,0.86) !important;
    --border: rgba(49,52,58,0.16) !important;
    --hairline: rgba(49,52,58,0.1) !important;
    --shadow: 0 1px 8px rgba(0,0,0,0.18) !important;
    --shadow-lg: 0 8px 32px rgba(0,0,0,0.27),0 0 0 0.5px rgba(19,19,19,0.85) inset !important
}
html.night .top-bar {
    background: rgba(18,17,23,0.78)
}
html.night .contact-status .dot-online {
    background: rgb(46,64,51);
    box-shadow: 0 0 4px rgba(0,0,0,0.5)
}
html.night .message-search-bar {
    background: rgba(18,17,23,0.9)
}
html.night .message-search-input {
    background: rgba(19,19,19,0.72)
}
html.night .message-search-input:focus {
    background: rgb(19,19,19)
}
html.night .sb-new-menu {
    background: rgba(19,19,19,0.97)
}
html.night .sb-new-switch {
    background: rgb(34,34,34)
}
html.night .sb-new-switch:before {
    background: rgb(19,19,19)
}
html.night .sb-search input {
    background: rgba(19,19,19,0.62)
}
html.night .sb-search input:focus {
    background: rgb(19,19,19)
}
html.night .sb-action.delete:active {
    color: rgb(165,114,114)
}
html.night .sb-rename-input {
    background: rgb(19,19,19)
}
html.night .scroll-nav-btn {
    background: rgba(19,19,19,0.92);
    box-shadow: 0 5px 18px rgba(0,0,0,0.36)
}
html.night .proactive-center-event {
    background: color-mix(in srgb,var(--bg) 88%,rgb(19,19,19));
    box-shadow: 0 5px 20px rgba(0,0,0,0.24)
}
html.night .msg-time.failed {
    color: rgb(165,114,114)
}
html.night .msg-time.interrupted {
    color: rgb(171,138,128)
}
html.night .summary-record svg {
    color: rgb(172,171,169)
}
html.night .chat-input-area {
    background: rgba(18,17,23,0.85)
}
html.night .chat-input-wrap {
    background: rgb(19,19,19)
}
html.night .chat-input-wrap:focus-within {
    border-color: rgba(49,35,39,0.4)
}
html.night .send-btn {
    color: rgb(107,107,107)
}
html.night .voice-live-dot {
    background: rgb(82,60,62);
    box-shadow: 0 0 0 4px color-mix(in srgb,rgba(0,0,0,0.5) 18%,transparent)
}
html.night .input-tool-btn.recording {
    color: rgb(172,124,130)
}
html.night .attachment-preview.error {
    border-color: rgb(72,52,52)
}
html.night .attachment-preview.error .attachment-meta {
    color: rgb(165,114,114)
}
html.night .attachment-remove {
    background: rgba(19,19,19,0.9)
}
html.night .profile-card {
    background: rgb(19,19,19);
    box-shadow: 0 2px 12px rgba(0,0,0,0.24)
}
html.night .profile-avatar {
    border: 2px solid rgb(19,19,19);
    box-shadow: 0 2px 8px rgba(0,0,0,0.45)
}
html.night .profile-avatar-edit {
    border: 2px solid rgb(19,19,19)
}
html.night .modal-tab.active {
    background: rgb(19,19,19)
}
html.night .modal-overlay.settings-sub.mine-sub .profile-tabs-wrap {
    background: rgba(18,17,23,0.82)
}
html.night .modal-overlay.settings-sub .profile-topbar {
    background: rgba(18,17,23,0.82)
}
html.night .modal-overlay.settings-sub .modal-actions {
    background: rgba(18,17,23,0.9)
}
html.night .st-input,html.night .st-textarea {
    background: rgb(19,19,19)
}
html.night .st-input:focus,html.night .st-textarea:focus {
    border-color: rgba(49,35,39,0.4)
}
html.night .st-select {
    background: rgb(19,19,19)
}
html.night .prov-form-actions .pf-save {
    color: rgb(107,107,107)
}
html.night .prov-form-actions .pf-cancel {
    background: rgb(19,19,19)
}
html.night .model-fetch {
    background: rgb(19,19,19)
}
html.night .av-input {
    background: rgb(19,19,19)
}
html.night .av-btn {
    background: rgb(19,19,19)
}
html.night .btn-save {
    color: rgb(107,107,107)
}
html.night .btn-cancel {
    background: rgb(19,19,19)
}
html.night .toast {
    background: rgba(84,77,79,0.85);
    color: rgb(107,107,107)
}
html.night .generation-error {
    border: 1px solid color-mix(in srgb,rgb(84,61,61) 35%,var(--border));
    background: color-mix(in srgb,rgb(84,61,61) 7%,transparent);
    color: rgb(188,150,150)
}
html.night .generation-failed-row .msg-meta {
    color: rgb(188,150,150)
}
html.night .generation-failed-row .msg-bubble {
    border-color: color-mix(in srgb,rgb(84,61,61) 28%,var(--border))
}
html.night .mcp-server-toggle .mcp-tsl {
    background: rgb(34,34,34)
}
html.night .mcp-server-toggle .mcp-tsl:before {
    background: rgb(19,19,19)
}
html.night .mcp-server-del:hover {
    color: rgb(173,126,126)
}
html.night .mcp-btn-add {
    color: rgb(107,107,107)
}
html.night .mcp-header-item .mcp-header-del:hover {
    color: rgb(173,126,126)
}
html.night .tool-card-hdr .tc-state.done {
    color: rgb(150,185,152)
}
html.night .tool-card-hdr .tc-state.error {
    color: rgb(162,109,109)
}
html.night .tool-card-body {
    background: rgb(19,19,19)
}
html.night .tool-timeline.has-error .tool-timeline-summary {
    color: rgb(165,114,114)
}
html.night .tool-timeline.has-error .tool-card.error::before {
    background: rgb(72,52,52)
}
html.night .citation-card:hover {
    background: var(--accent-light2,rgb(31,25,30))
}
html.night .toggle-slider {
    background: rgb(34,34,34)
}
html.night .toggle-slider:before {
    background: rgb(19,19,19)
}
html.night .bg-clear-btn {
    color: rgb(160,112,112)
}
html.night .chat-input-card {
    background: rgb(19,19,19)
}
html.night .input-tool-btn.active {
    color: rgb(107,107,107)
}
html.night .composer-tools-menu {
    background: rgba(19,19,19,0.96)
}
html.night #composerToolsBtn.active {
    color: rgb(107,107,107)
}
html.night .context-status.warning .context-status-main,html.night .context-status.warning .context-status-level {
    color: rgb(171,138,128)
}
html.night .context-status.danger .context-status-main,html.night .context-status.danger .context-status-level {
    color: rgb(173,126,126)
}
html.night .turn-context-record {
    color: rgb(178,157,166)
}
html.night .turn-context-record:hover,html.night .turn-context-record:active {
    color: rgb(188,166,176)
}
html.night .turn-context-detail {
    border: 1px solid rgba(52,38,43,0.42);
    background: rgba(25,18,20,0.98);
    box-shadow: 0 5px 18px rgba(0,0,0,0.24);
    color: rgb(175,162,166)
}
html.night .turn-context-detail strong {
    color: rgb(182,170,175)
}
html.night .turn-context-detail small {
    color: rgb(155,130,139)
}
html.night .sticker-panel {
    background: rgb(19,19,19)
}
html.night .search-badge {
    color: rgb(107,107,107)
}
html.night .msg-act-btn:active {
    color: rgb(107,107,107)
}
html.night .toggle-slider {
    background: rgb(34,34,34)
}
html.night .toggle-slider:before {
    background: rgb(19,19,19)
}
html.night .reply-btn:active {
    color: rgb(107,107,107)
}
html.night .msg-more-menu {
    background: rgb(19,19,19)
}
html.night .msg-context-menu {
    background: rgba(19,19,19,0.96)
}
html.night .msg-context-item.danger {
    color: rgb(165,114,114)
}
html.night .msg-more-del {
    color: rgb(166,116,116)
}
html.night .thinking-sheet {
    background: rgba(19,19,19,0.97)
}
html.night .think-sheet-grab span {
    background: rgba(84,82,78,0.22)
}
html.night .think-sheet-close {
    background: rgb(19,19,19);
    color: rgb(185,183,179)
}
html.night .daily-memory-action {
    background: rgb(19,19,19)
}
html.night .msg-retry-btn {
    color: rgb(165,114,114)
}
html.night .msg-edit-area {
    background: rgba(19,19,19,0.72)
}
html.night .msg-edit-btn.save {
    color: rgb(107,107,107)
}
html.night .reply-btn:active {
    color: rgb(107,107,107)
}
html.night .model-pick-btn {
    background: var(--card,rgb(19,19,19))
}
html.night .ms-sheet {
    background: rgb(19,19,19)
}
html.night .ms-status.error {
    color: rgb(170,122,122)
}
html.night .ms-confirm {
    color: rgb(107,107,107)
}
html.night .sp-page {
    background: var(--bg,rgb(18,17,23))
}
html.night .sp-topbar {
    border-bottom: 1px solid var(--hairline,rgba(49,52,58,0.1));
    background: rgba(18,17,23,0.82)
}
html.night .sp-back-btn {
    color: var(--text,rgb(175,175,175))
}
html.night .sp-topbar-title {
    color: var(--text,rgb(175,175,175))
}
html.night .sp-avatar {
    background: linear-gradient(135deg,var(--accent-light,rgb(25,22,28)),var(--user-bubble,rgb(31,26,31)));
    box-shadow: 0 8px 24px rgba(0,0,0,0.5)
}
html.night .sp-avatar-edit {
    background: var(--accent,rgb(54,47,59));
    border: 2px solid var(--bg,rgb(18,17,23))
}
html.night .sp-name-input {
    color: var(--text,rgb(175,175,175))
}
html.night .sp-name-input::placeholder {
    color: var(--text-l,rgb(139,138,140))
}
html.night .sp-card {
    background: rgba(19,19,19,0.72);
    border: 1px solid var(--border,rgba(49,52,58,0.16));
    box-shadow: 0 2px 12px rgba(0,0,0,0.24)
}
html.night .sp-data-button.danger {
    color: rgb(170,122,122);
    border-color: rgba(80,58,58,0.22)
}
html.night .sp-row {
    color: var(--text,rgb(175,175,175))
}
html.night .sp-row + .sp-row {
    border-top: 1px solid var(--hairline,rgba(49,52,58,0.1))
}
html.night .sp-row:active {
    background: rgba(49,52,58,0.1)
}
html.night .sp-row-icon {
    background: var(--accent-light,rgb(25,22,28));
    color: var(--accent,rgb(133,119,146))
}
html.night .sp-row-label {
    color: var(--text,rgb(175,175,175))
}
html.night .sp-row-value {
    color: var(--text-l,rgb(139,138,140))
}
html.night .sp-chevron {
    color: var(--text-l,rgb(139,138,140))
}
html.night .voice-play {
    color: rgb(107,107,107)
}
html.night .voice-play:focus-visible,html.night .voice-wave:focus-visible {
    outline: 2px solid color-mix(in srgb,var(--accent) 58%,rgb(19,19,19))
}
html.night .voice-play::before {
    border-left: 11px solid rgb(19,19,19)
}
html.night .voice-player[data-voice].playing,html.night .voice-card.playing .voice-play::before {
    background: linear-gradient(90deg,rgb(19,19,19) 0 36%,transparent 36% 64%,rgb(19,19,19) 64% 100%)
}
html.night .voice-player[data-voice].loading,html.night .voice-card.loading .voice-play::before {
    border: 2px solid rgba(19,19,19,0.45);
    border-top-color: rgb(19,19,19)
}
html.night .voice-transcript-toggle:focus-visible,html.night .voice-player:focus-visible {
    outline: 2px solid color-mix(in srgb,var(--accent) 55%,rgb(19,19,19))
}
html.night .callhome-overlay {
    --call-grad: linear-gradient(165deg,rgb(100,95,90),rgb(108,99,96) 72%) !important;
    --call-text: rgb(31,28,23) !important;
    --call-soft: rgb(50,47,43) !important;
    --call-muted: rgb(75,72,69) !important;
    --call-glass: rgba(25,22,18,0.13) !important;
    --call-border: rgba(26,23,19,0.2) !important;
    --call-left: rgba(27,25,20,0.68) !important;
    --call-left-text: rgb(99,95,88) !important;
    --call-right: rgb(33,29,24) !important;
    --call-right-text: rgb(101,96,91) !important
}
html.night .callhome-overlay.cool {
    --call-grad: linear-gradient(165deg,rgb(91,93,99),rgb(94,100,110) 72%) !important;
    --call-text: rgb(23,25,28) !important;
    --call-soft: rgb(43,46,50) !important;
    --call-muted: rgb(69,71,74) !important;
    --call-glass: rgba(18,21,25,0.13) !important;
    --call-border: rgba(19,22,26,0.2) !important;
    --call-left: rgba(19,22,26,0.68) !important;
    --call-left-text: rgb(87,92,101) !important;
    --call-right: rgb(24,27,30) !important;
    --call-right-text: rgb(91,98,107) !important
}
html.night .callhome-bg:before {
    background: rgba(45,42,37,0.16)
}
html.night .callhome-bg:after {
    background: rgba(66,63,59,0.14)
}
html.night .callhome-tint {
    background: rgb(111,102,94)
}
html.night .callhome-ripples>i {
    border: 1.5px solid rgba(61,48,44,0.52)
}
html.night .callhome-avatar {
    background: linear-gradient(160deg,rgb(37,32,29),rgb(45,40,37)) center/cover;
    color: rgb(179,170,167);
    box-shadow: 0 0 42px 8px rgba(0,0,0,0.5)
}
html.night .callhome-pair-avatar {
    background: linear-gradient(160deg,rgb(89,85,81),rgb(101,96,93)) center/cover no-repeat
}
html.night .callhome-caption.assistant {
    border: 1px solid rgba(19,19,19,0.35)
}
html.night .callhome-action.accept span {
    background: linear-gradient(160deg,rgb(61,48,44),rgb(69,53,50))
}
html.night .callhome-action.decline span {
    background: rgba(19,19,19,0.09)
}
html.night .callhome-action.end span {
    color: rgb(193,189,184)
}
html.night .callhome-overlay.user-speaking .callhome-pair-avatar.user,html.night .callhome-overlay.assistant-speaking .callhome-pair-avatar.assistant {
    box-shadow: 0 0 38px 8px rgba(32,29,23,0.5)
}
html.night .callhome-sheet {
    border: 1px solid rgba(19,19,19,0.5);
    color: rgb(183,176,173);
    background: rgba(25,21,18,0.9)
}
html.night .callhome-chip,html.night .callhome-decline-custom button,html.night .callhome-sheet-cancel {
    border: 1px solid rgba(68,60,58,0.18);
    background: rgba(68,60,58,0.08);
    color: rgb(179,170,167)
}
html.night .callhome-decline-custom input {
    border: 1px solid rgba(68,60,58,0.2);
    background: rgba(19,19,19,0.55)
}
html.night .callhome-settings>i {
    background: rgba(53,53,53,0.45)
}
html.night .callhome-settings button {
    background: rgba(19,19,19,0.06)
}
html.night .callhome-settings button.on {
    color: rgb(192,189,185)
}
html.night .call-detail-panel {
    background: rgb(21,18,24);
    color: rgb(179,177,181)
}
html.night .call-detail-head {
    border-bottom: 1px solid rgba(74,71,78,0.09);
    background: rgb(21,18,24)
}
html.night .call-detail-back {
    color: rgb(175,173,176)
}
html.night .call-detail-title {
    color: rgb(179,177,181)
}
html.night .call-detail-meta {
    color: rgb(144,140,146)
}
html.night .call-detail-reason {
    color: rgb(151,149,153);
    border-bottom: 1px solid rgba(74,71,78,0.08);
    background: rgb(21,18,24)
}
html.night .call-detail-turns {
    background: rgb(25,22,26)
}
html.night .call-detail-loading,html.night .call-detail-empty {
    color: rgb(144,140,146)
}
html.night .call-turn-speaker {
    color: rgb(144,140,146)
}
html.night .call-turn-bubble {
    background: rgb(19,19,19);
    color: rgb(179,177,181)
}
html.night .call-turn.user .call-turn-bubble {
    background: rgb(31,26,32)
}
html.night .call-turn-foot {
    color: rgb(138,134,140)
}
html.night .call-turn-play {
    border: 1px solid rgba(74,71,78,0.13);
    background: rgb(19,19,19);
    color: rgb(170,168,171)
}
html.night .call-turn-play.playing {
    color: rgb(151,139,153);
    border-color: rgb(56,49,56)
}
html.night .call-detail-panel {
    background: rgb(21,18,24);
    color: rgb(179,177,181)
}
html.night .call-detail-head {
    border-bottom: 1px solid rgba(74,71,78,0.09);
    background: rgb(21,18,24)
}
html.night .call-detail-back {
    color: rgb(175,173,176)
}
html.night .call-detail-title {
    color: rgb(179,177,181)
}
html.night .call-detail-meta {
    color: rgb(144,140,146)
}
html.night .call-detail-reason {
    color: rgb(151,149,153);
    border-bottom: 1px solid rgba(74,71,78,0.08);
    background: rgb(21,18,24)
}
html.night .call-detail-turns {
    background: rgb(25,22,26)
}
html.night .call-detail-loading,html.night .call-detail-empty {
    color: rgb(144,140,146)
}
html.night .call-turn-speaker {
    color: rgb(144,140,146)
}
html.night .call-turn-bubble {
    background: rgb(19,19,19);
    color: rgb(179,177,181)
}
html.night .call-turn.user .call-turn-bubble {
    background: rgb(31,26,32)
}
html.night .call-turn-foot {
    color: rgb(138,134,140)
}
html.night .call-turn-play {
    border: 1px solid rgba(74,71,78,0.13);
    background: rgb(19,19,19);
    color: rgb(170,168,171)
}
html.night .call-turn-play.playing {
    color: rgb(151,139,153);
    border-color: rgb(56,49,56)
}
html.night .callhome-caption {
    background: rgba(27,25,20,0.72);
    color: rgb(188,185,189);
    border: 1px solid rgba(19,19,19,0.35)
}
html.night .callhome-caption.user {
    background: rgba(27,23,29,0.94)
}
html.night .callhome-action.speaking span {
    box-shadow: 0 0 0 10px rgba(19,19,19,0.08),0 10px 30px rgba(20,20,30,.22)
}
html.night .doudizhu-record-card {
    background: linear-gradient(145deg,color-mix(in srgb,var(--ai-bubble) 92%,rgb(48,44,35)),var(--ai-bubble))
}
html.night .doudizhu-score-item .positive {
    color: rgb(189,168,153)
}
html.night .doudizhu-score-item .negative {
    color: rgb(163,169,175)
}
html.night .sp-game-card {
    background: linear-gradient(135deg,rgba(19,19,19,0.78),color-mix(in srgb,var(--accent-light,rgb(25,22,28)) 72%,rgb(19,19,19)))
}
html.night .sp-game-icon {
    background: color-mix(in srgb,var(--accent-light,rgb(25,22,28)) 82%,rgb(19,19,19));
    color: var(--accent,rgb(133,119,146))
}
html.night .forge-sheet {
    background: rgba(24,20,24,0.94);
    box-shadow: 0 -16px 46px rgba(0,0,0,0.36)
}
html.night .forge-stat,html.night .forge-flow {
    background: rgba(19,19,19,0.75)
}
html.night .chat-file-viewer {
    background: var(--bg,rgb(25,22,25)) !important
}
html.night .chat-file-viewer-bar {
    background: color-mix(in srgb,var(--surface,rgb(19,19,19)) 94%,transparent)
}
html.night .chat-file-viewer-close,html.night .chat-file-viewer-download {
    color: var(--accent,rgb(177,161,169))
}
html.night .chat-file-viewer-title {
    color: var(--text,rgb(186,186,186))
}
html.night .chat-file-viewer-body {
    background: rgb(19,19,19)
}
html.night .chat-file-viewer-loading,html.night .chat-file-viewer-unsupported {
    color: rgb(169,169,169)
}
html.night .chat-file-viewer-unsupported strong {
    color: rgb(182,182,182)
}
html.night .chat-file-viewer-text {
    color: rgb(187,186,189);
    background: rgb(19,19,19)
}
html.night .chat-file-viewer-frame {
    background: rgb(19,19,19)
}
html.night .duetto-record-card {
    border: 1px solid color-mix(in srgb,rgb(66,48,55) 30%,transparent) !important;
    background: linear-gradient(155deg,color-mix(in srgb,var(--ai-bubble) 88%,rgb(33,24,27)),var(--ai-bubble)) !important
}
html.night .duetto-record-card:focus-visible {
    outline: 2px solid rgb(66,48,55)
}
html.night .duetto-record-ic {
    background: linear-gradient(135deg,rgb(32,23,27),rgb(39,28,33));
    color: rgb(153,127,141)
}
html.night .duetto-record-dot {
    background: rgb(64,46,52);
    box-shadow: 0 0 0 3px color-mix(in srgb,rgba(0,0,0,0.5) 25%,transparent)
}
html.night .duetto-record-open {
    border-top: 1px solid color-mix(in srgb,rgb(66,48,55) 15%,transparent)
}
html.night .duetto-song-idx {
    color: color-mix(in srgb,rgb(156,115,131) 90%,var(--text))
}
html.night .duetto-chat-line.from-you b {
    color: rgb(156,115,131)
}
html.night .duetto-chat-line.from-vince b {
    color: rgb(140,135,152)
}
html.night[data-conn="reconnecting"] .contact-status .dot-online {
    background: rgb(72,64,52) !important;
    box-shadow: 0 0 4px rgba(0,0,0,0.5) !important
}
html.night[data-conn="reconnecting"] .contact-status:not(.typing) .status-text {
    color: rgb(185,171,153) !important
}
html.night[data-conn="offline"] .contact-status .dot-online {
    background: rgb(50,47,44) !important
}
html.night[data-conn="reconnecting"] .contact-status {
    color: rgb(164,143,115) !important
}
html.night[data-conn="reconnecting"] .contact-status .dot-online {
    background: rgb(66,59,47) !important;
    box-shadow: 0 0 4px rgba(0,0,0,0.5) !important
}
html.night[data-conn="offline"] .contact-status {
    color: rgb(150,130,130) !important
}
html.night[data-conn="offline"] .contact-status .dot-online {
    background: rgb(67,57,57) !important
}
html.night .chat-photo-stack .pstack-card {
    border: 1px solid rgba(19,19,19,0.72)
}
html.night .chat-photo-stack .pstack-card img {
    background: color-mix(in srgb,var(--surface,rgb(19,19,19)) 90%,rgb(27,27,27))
}
html.night .chat-video {
    background: rgb(105,99,105)
}
html.night .daily-memory-edit-save {
    color: rgb(107,107,107)
}
html.night .message-selecting .msg-row.selected .msg-select-check {
    color: rgb(107,107,107)
}
html.night .message-select-bar {
    background: color-mix(in srgb,var(--bg) 94%,rgb(19,19,19))
}
html.night .message-select-bar .message-select-delete {
    background: rgb(78,57,57);
    color: rgb(107,107,107)
}
html.night #wbAlwaysWrap .wb-trigger-item,html.night #wbTriggersWrap .wb-trigger-item {
    background: rgba(19,19,19,0.22)
}
html.night .wb-always-name,html.night .wb-name {
    border: 1px solid rgba(53,53,54,0.13) !important;
    background: rgba(19,19,19,0.25) !important;
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.3)
}
html.night .wb-always-name:focus,html.night .wb-name:focus {
    border-color: rgba(61,61,64,0.26) !important;
    background: rgba(19,19,19,0.45) !important
}
html.night .wb-always-name,html.night .wb-name {
    background: rgba(74,74,76,0.1) !important
}
html.night .wb-always-name:focus,html.night .wb-name:focus {
    background: rgba(74,74,76,0.16) !important
}
html.night .wb-group {
    background: rgba(74,74,77,0.065)
}
html.night .wb-group-count {
    background: rgba(51,51,53,0.1)
}
html.night .wb-group-items .wb-trigger-item {
    background: rgba(19,19,19,0.38)
}
html.night .wb-add-child {
    border: 1px dashed rgba(51,51,53,0.18)
}
html.night .mode-toggle.mode-casual {
    background: rgba(28,25,20,0.9);
    border-color: rgb(57,52,42);
    color: rgb(192,176,156)
}
html.night .mode-toggle.mode-immersive {
    background: rgba(69,66,77,0.12);
    border-color: rgba(69,66,85,0.45);
    color: rgb(166,162,179)
}
html.night .top-mode-toggle.mode-casual {
    background: rgba(28,25,20,0.9) !important;
    border-color: rgb(57,52,42) !important;
    color: rgb(192,176,156) !important
}
html.night .top-mode-toggle.mode-immersive {
    background: rgba(69,66,77,0.12) !important;
    border-color: rgba(69,66,85,0.45) !important;
    color: rgb(166,162,179) !important
}
html.night .summary-system-notice {
    color: var(--text-l,rgb(142,142,142))
}
html.night #chatMsgs.mode-casual

.msg-row.user .msg-bubble {
    border: 1px solid color-mix(in srgb, var(--user-bubble) 24%, rgb(19,19,19)) !important;
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.34), 0 5px 14px color-mix(in srgb, var(--user-bubble) 10%, transparent) !important
}
html.night .msg-row.user .msg-bubble {
    border: 1px solid color-mix(in srgb, var(--user-bubble) 24%, rgb(19,19,19)) !important;
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.5),
    inset 0 -1px 0 rgba(19,19,19,0.08),
    0 5px 16px color-mix(in srgb, var(--user-bubble) 10%, transparent) !important
}
html.night #chatMsgs .msg-row.assistant .msg-bubble {
    background: radial-gradient(120% 95% at 8% 0%,rgba(19,19,19,0.46) 0%,rgba(19,19,19,0.12) 31%,transparent 58%),
    radial-gradient(95% 120% at 100% 100%,color-mix(in srgb,var(--ai-bubble) 34%,transparent) 0%,transparent 64%),
    color-mix(in srgb,var(--ai-bubble) 30%,transparent) !important;
    border: 1px solid color-mix(in srgb,var(--ai-bubble) 34%,rgba(19,19,19,0.72)) !important;
    box-shadow: inset 1px 1px 0 rgba(19,19,19,0.72),
    inset -1px -1px 0 color-mix(in srgb,var(--ai-bubble) 22%,rgba(0,0,0,0.24)) !important
}
html.night #chatMsgs .msg-row.assistant .msg-bubble::before {
    background: linear-gradient(118deg,rgba(19,19,19,0.38) 0%,rgba(19,19,19,0.1) 18%,transparent 39%),
    radial-gradient(55% 28% at 72% 4%,rgba(19,19,19,0.34),transparent 72%)
}
html.night #chatMsgs .msg-row.assistant .msg-bubble::after {
    background: linear-gradient(90deg,transparent,rgba(19,19,19,0.88),transparent)
}
html.night .msg-row.assistant .msg-bubble {
    background: radial-gradient(120% 90% at 8% 0%,rgba(19,19,19,0.58),transparent 42%),
    radial-gradient(90% 120% at 100% 100%,color-mix(in srgb,var(--ai-bubble) 72%,transparent),transparent 68%),
    color-mix(in srgb,var(--ai-bubble) 38%,transparent) !important;
    border: 1px solid color-mix(in srgb,var(--ai-bubble) 42%,rgba(19,19,19,0.72)) !important;
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.72),inset 0 -1px 0 rgba(19,19,19,0.18),inset 1px 0 0 rgba(19,19,19,0.24) !important
}
html.night .msg-row.assistant .msg-bubble::before {
    background: linear-gradient(118deg,rgba(19,19,19,0.34) 0%,rgba(19,19,19,0.08) 23%,transparent 48%,color-mix(in srgb,var(--ai-bubble) 18%,transparent) 100%)
}
html.night .msg-row.user .msg-bubble,html.night .msg-row.assistant .msg-bubble {
    background: radial-gradient(120% 90% at 8% 0%,rgba(19,19,19,0.58),transparent 42%),
    radial-gradient(90% 120% at 100% 100%,color-mix(in srgb,var(--bubble-color) 72%,transparent),transparent 68%),
    color-mix(in srgb,var(--bubble-color) 38%,transparent) !important;
    border: 1px solid color-mix(in srgb,var(--bubble-color) 42%,rgba(19,19,19,0.72)) !important;
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.72),inset 0 -1px 0 rgba(19,19,19,0.18),inset 1px 0 0 rgba(19,19,19,0.24) !important
}
html.night .msg-row.user .msg-bubble::before,html.night .msg-row.assistant .msg-bubble::before {
    background: linear-gradient(118deg,rgba(19,19,19,0.34),rgba(19,19,19,0.08) 23%,transparent 48%,color-mix(in srgb,var(--bubble-color) 18%,transparent))
}
html.night .top-bar,html.night .chat-input-area {
    background: linear-gradient(180deg,rgba(19,19,19,0.68),rgba(20,18,25,0.48));
    border-color: rgba(19,19,19,0.58);
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.82),inset 0 -1px 0 rgba(19,19,19,0.24),0 8px 28px -18px rgba(0,0,0,0.5)
}
html.night .chat-input-area {
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.82),inset 0 -1px 0 rgba(19,19,19,0.28),0 -10px 30px -22px rgba(0,0,0,0.5)
}
html.night .top-bar:before,html.night .chat-input-area:before {
    background: radial-gradient(ellipse at 18% 0%,rgba(19,19,19,0.7),transparent 45%),radial-gradient(ellipse at 86% 100%,rgba(37,31,43,0.14),transparent 48%)
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
    html.night .top-bar,html.night .chat-input-area {
        background: rgba(18,17,23,0.94)
    }
}
html.night .top-bar,html.night .chat-input-area {
    background: linear-gradient(180deg, rgba(19,19,19,0.28), rgba(22,19,26,0.14)) !important;
    border-color: rgba(19,19,19,0.48) !important;
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.72), inset 0 -1px 0 rgba(19,19,19,0.16), 0 8px 28px -20px rgba(50,40,60,.28) !important
}
html.night .top-bar:before,html.night .chat-input-area:before {
    background: linear-gradient(180deg, rgba(19,19,19,0.22), rgba(19,19,19,0)) !important
}
html.night .chat-textarea,html.night .input-row,html.night .chat-input-area .icon-btn,html.night .chat-input-area .model-select {
    background-color: rgba(19,19,19,0.3) !important
}
html.night .top-bar,html.night .chat-input-area {
    background: rgba(19,19,19,0.16) !important
}
html.night .top-bar::after,html.night .chat-input-area::after {
    background: linear-gradient(180deg,rgba(19,19,19,0.28),rgba(19,19,19,0.06));
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.72), inset 0 -1px 0 rgba(19,19,19,0.28)
}
html.night .chat-input-area .input-row {
    background: rgba(19,19,19,0.22) !important;
    border-color: rgba(19,19,19,0.42) !important
}
html.night .chat-input-area .model-select {
    background: rgba(19,19,19,0.25) !important
}
html.night .top-bar {
    border: 1px solid rgba(19,19,19,0.26) !important;
    background: rgba(19,19,19,0.035) !important
}
html.night .top-bar::before {
    background: radial-gradient(ellipse at 16% 0%, rgba(19,19,19,0.22), transparent 42%),
    linear-gradient(120deg, rgba(19,19,19,0.12), rgba(19,19,19,0.012) 44%, rgba(38,32,44,0.06) 76%, rgba(19,19,19,0.1)) !important;
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.36), inset 0 -1px 0 rgba(19,19,19,0.06) !important
}
html.night .chat-input-card {
    background: rgba(19,19,19,0.035) !important;
    border: 1px solid rgba(19,19,19,0.24) !important
}
html.night .top-bar {
    border: 1px solid rgba(19,19,19,0.28) !important;
    background: rgba(19,19,19,0.025) !important
}
html.night .top-bar::before {
    background: radial-gradient(ellipse at 18% 0%, rgba(19,19,19,0.21), transparent 43%),
    radial-gradient(ellipse at 82% 100%, rgba(41,34,47,0.07), transparent 47%),
    linear-gradient(125deg, rgba(19,19,19,0.07), rgba(19,19,19,0.008) 48%, rgba(19,19,19,0.04)) !important;
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.38), inset 0 -1px 0 rgba(19,19,19,0.06) !important
}
html.night .top-bar {
    background: rgba(19,19,19,0.045) !important;
    border-color: rgba(19,19,19,0.24) !important
}
html.night .top-bar::before {
    background: linear-gradient(135deg, rgba(19,19,19,0.12), rgba(19,19,19,0.015) 50%, rgba(37,30,41,0.05)) !important;
    box-shadow: inset 0 1px 0 rgba(19,19,19,0.3), inset 0 -1px 0 rgba(19,19,19,0.05) !important
}
html.night .forge-layer-group {
    color: var(--muted,rgb(148,148,148))
}
html.night .forge-episode {
    border: 1px solid var(--line,rgb(31,31,31));
    background: var(--card,rgb(19,19,19))
}
html.night .forge-episode-meta {
    color: var(--muted,rgb(148,148,148))
}
html.night .silent-completion {
    color: rgba(171,171,171,0.48)
}
html.night .font-pick-btn {
    background: var(--surface,rgb(19,19,19))
}
html.night .opt-sheet {
    background: rgba(19,19,19,0.96)
}
html.night .opt-sheet .os-send {
    color: rgb(107,107,107)
}
html.night .opt-sheet.rec .os-row.on .os-k {
    color: rgb(107,107,107)
}
html.night .opt-sheet .os-her .os-k {
    color: rgb(107,107,107)
}
html.night .cmd-edge {
    background: rgba(19,19,19,0.96);
    color: rgb(178,179,176)
}
html.night .cmd-edge.overtime {
    background: rgb(25,21,18);
    color: rgb(180,161,155)
}
html.night .cmd-edge-progress {
    background: rgb(59,59,57)
}
html.night .cmd-edge-progress.overtime {
    background: rgb(59,48,45)
}
html.night .cmd-card {
    border: 1px solid rgba(19,19,19,0.6);
    background: rgba(19,19,19,0.98);
    color: rgb(190,191,186)
}
html.night .cmd-card.overtime {
    background: rgb(24,20,17)
}
html.night .cmd-card-eyebrow {
    color: rgb(180,161,155)
}
html.night .cmd-card-fold {
    color: rgb(143,143,143)
}
html.night .cmd-card-timer {
    color: rgb(188,191,186)
}
html.night .cmd-card-state {
    color: rgb(143,143,143)
}
html.night .cmd-card-sub {
    color: rgb(136,136,136)
}
html.night .cmd-card-timer.overtime {
    color: rgb(180,161,155)
}
html.night .cmd-card-bar {
    background: rgb(30,30,26)
}
html.night .cmd-card-bar-fill {
    background: rgb(62,62,60)
}
html.night .cmd-card-bar-fill.overtime {
    background: rgb(59,48,45)
}
html.night .cmd-card-actions button {
    color: rgb(143,143,143)
}
html.night .cmd-card-cancel::after {
    border-bottom: 2px solid rgb(59,48,45)
}
html.night .cmd-result-toast {
    background: rgb(19,19,19);
    color: rgb(188,191,186)
}
html.night .cmd-result-toast span {
    background: rgb(27,33,24);
    color: rgb(148,161,145)
}
html.night .heart-voice-area {
    border-bottom: 1px solid var(--border,rgb(29,29,29));
    background: var(--bg-card,rgb(19,19,19))
}
html.night .hv-header {
    color: var(--text-secondary,rgb(143,143,143))
}
html.night .hv-close {
    color: var(--text-secondary,rgb(143,143,143))
}
html.night .hv-textarea {
    color: var(--text-primary,rgb(186,186,186))
}
html.night .hv-textarea::placeholder {
    color: var(--text-tertiary,rgb(129,129,129))
}
html.night .hv-toggle-btn.active {
    background: var(--accent-bg,rgb(24,21,29))
}
html.night .heart-voice-fold {
    border-top: 1px solid rgba(76,76,76,0.12)
}
html.night .heart-voice-fold .hv-text {
    color: var(--text-secondary,rgb(150,150,150))
}
html.night .msg-bubble .silent-spoken {
    color: var(--text-tertiary,rgb(129,129,129))
}
html.night .ms-checkbox {
    border: 2px solid rgb(42,42,42);
    background: rgb(19,19,19)
}
html.night .ms-check.checked .ms-checkbox {
    border-color: var(--accent, rgb(53,38,38));
    background: var(--accent, rgb(53,38,38));
    box-shadow: inset 0 0 0 3px rgb(19,19,19)
}
html.night .ms-bar {
    background: rgba(19,19,19,0.95)
}
html.night .ms-bar .ms-cancel {
    color: rgb(173,173,173)
}
html.night .ms-bar .ms-count {
    color: rgb(143,143,143)
}
html.night .ms-bar .ms-del {
    background: rgb(74,53,53);
    color: rgb(107,107,107)
}
html.night .ms-status.success {
    color: rgb(160,185,167)
}
html.night .presence-banner.is-blocked {
    background: rgb(31,22,22);
    color: rgb(180,155,155)
}
html.night .msg-row.user.note-row .msg-bubble {
    background: rgb(26,24,19) !important;
    color: rgb(188,180,167) !important;
    border: 1px dashed rgb(58,53,42);
    box-shadow: 0 2px 6px rgba(0,0,0,0.36)
}
html.night .ms-bar .ms-keep {
    border: 1px solid var(--accent,rgb(87,75,64));
    color: var(--accent,rgb(168,152,136))
}
html.night .vocab-sheet {
    background: rgb(26,24,19);
    box-shadow: 0 -18px 50px rgba(0,0,0,0.5);
    color: rgb(181,178,183)
}
html.night .vocab-handle {
    background: rgb(40,37,38)
}
html.night .vocab-head {
    border-bottom: 1px dashed rgb(44,37,38)
}
html.night .vocab-head h2 {
    color: rgb(169,180,177)
}
html.night .vocab-head p {
    color: rgb(151,142,143)
}
html.night .vocab-head button {
    background: rgb(31,25,25);
    color: rgb(171,163,165)
}
html.night .vocab-search input {
    border: 1px solid rgb(43,38,36);
    background: rgb(23,21,17)
}
html.night .vocab-search button,html.night .vocab-primary {
    background: rgb(69,78,75);
    color: rgb(107,107,107)
}
html.night .vocab-card,html.night .vocab-editor {
    background: linear-gradient(rgb(23,22,17),rgb(25,22,18));
    border: 1px solid rgb(41,35,33);
    border-left: 3px solid rgb(56,41,43);
    box-shadow: 0 5px 13px rgba(0,0,0,0.18);
    background-image: linear-gradient(rgba(66,77,74,0.09) 1px,transparent 1px)
}
html.night .vocab-card h3 {
    color: rgb(169,184,180)
}
html.night .vocab-card-top span {
    color: rgb(151,142,143)
}
html.night .vocab-delete {
    color: rgb(148,129,131)
}
html.night .vocab-card label,html.night .vocab-editor label {
    color: rgb(152,141,142)
}
html.night .vocab-card input,html.night .vocab-card textarea,html.night .vocab-editor input,html.night .vocab-editor textarea {
    border-bottom: 1px solid rgba(69,78,75,0.22);
    background: rgba(19,19,19,0.65);
    color: rgb(181,178,181)
}
html.night .vocab-source {
    background: rgb(23,28,25);
    color: rgb(167,179,176)
}
html.night .vocab-source-label {
    color: rgb(143,131,133)
}
html.night .vocab-empty {
    color: rgb(145,134,136)
}
html.night .vocab-empty strong {
    color: rgb(163,172,169)
}
html.night .vocab-ghost {
    border: 1px solid rgb(43,38,37);
    background: rgb(25,21,18);
    color: rgb(153,147,148)
}
html.night .vocab-recommend-head strong {
    color: rgb(169,180,177)
}
html.night .vocab-recommend-head span {
    color: rgb(151,142,143)
}
html.night .vocab-recommend-head button,html.night .vocab-lookup-row button {
    border: 1px solid rgb(36,42,40);
    background: rgb(23,28,25);
    color: rgb(167,179,176)
}
html.night .vocab-pick {
    border: 1px solid rgb(41,35,33);
    background: rgb(23,21,17)
}
html.night .vocab-pick-word strong {
    color: rgb(169,184,180)
}
html.night .vocab-pick-word span {
    color: rgb(151,142,143)
}
html.night .vocab-pick p {
    color: rgb(176,173,175)
}
html.night .vocab-pick small {
    color: rgb(145,134,136)
}
html.night .vocab-pick>button {
    background: rgb(69,78,75);
    color: rgb(107,107,107)
}
html.night .vocab-recommend-loading {
    color: rgb(151,142,143)
}
html.night .vocab-lookup-row span {
    color: rgb(151,142,143)
}
html.night .vocab-modes {
    background: rgb(32,28,26)
}
html.night .vocab-modes button {
    color: rgb(155,148,150)
}
html.night .vocab-modes button.active {
    background: rgb(23,21,17);
    color: rgb(168,181,177);
    box-shadow: 0 1px 4px rgba(0,0,0,0.27)
}
html.night .vocab-modes span {
    color: rgb(162,130,135)
}
html.night .vocab-review-stats {
    color: rgb(151,142,143)
}
html.night .vocab-review-stats b {
    color: rgb(167,180,176)
}
html.night .vocab-review-card {
    background: rgb(23,21,17);
    border: 1px solid rgb(41,36,34);
    box-shadow: 0 8px 20px rgba(0,0,0,0.21)
}
html.night .vocab-review-word h3 {
    color: rgb(169,184,180)
}
html.night .vocab-speak,html.night .vocab-card-speak {
    background: rgb(23,28,25);
    color: rgb(167,179,176)
}
html.night .vocab-review-phonetic {
    color: rgb(151,142,143)
}
html.night .vocab-cloze {
    border-top: 1px dashed rgb(42,35,37);
    border-bottom: 1px dashed rgb(42,35,37);
    color: rgb(175,171,174)
}
html.night .vocab-reveal {
    background: rgb(69,78,75);
    color: rgb(107,107,107)
}
html.night .vocab-review-answer {
    background: rgb(24,27,22)
}
html.night .vocab-review-answer span {
    color: rgb(149,139,141)
}
html.night .vocab-review-answer strong {
    color: rgb(169,182,179)
}
html.night .vocab-review-answer p {
    border-top: 1px solid rgb(30,35,32);
    color: rgb(173,169,171)
}
html.night .vocab-review-actions button {
    border: 1px solid rgb(40,35,34);
    background: rgb(25,21,18);
    color: rgb(176,172,174)
}
html.night .vocab-review-actions button:nth-child(1) {
    color: rgb(165,139,143)
}
html.night .vocab-review-actions button:nth-child(3) {
    color: rgb(166,181,177)
}
html.night .vocab-review-actions button small {
    color: rgb(144,135,137)
}
html.night .vocab-review-actions button.selected {
    background: rgb(23,28,25);
    border-color: rgb(69,78,75)
}
html.night .vocab-review-empty,html.night .vocab-review-loading {
    color: rgb(147,137,139)
}
html.night .vocab-review-empty strong {
    color: rgb(166,178,175)
}
html.night .vocab-due-badge {
    background: rgb(76,55,59);
    color: rgb(107,107,107)
}
html.night .vocab-card .vocab-pos {
    background: rgba(66,77,74,0.16);
    color: rgb(168,188,183)
}
html.night .vocab-card .vocab-selected {
    background: rgba(56,41,43,0.22);
    color: rgb(184,160,163)
}
html.night .vocab-card .vocab-forms {
    background: rgba(19,19,19,0.55);
    border: 1px dashed rgba(66,77,74,0.28);
    color: rgb(169,172,170)
}
html.night .vocab-card .vocab-pos {
    background: rgba(66,77,74,0.16);
    color: rgb(168,188,183)
}
html.night .vocab-card .vocab-selected {
    background: rgba(56,41,43,0.22);
    color: rgb(184,160,163)
}
html.night .vocab-card .vocab-forms {
    background: rgba(19,19,19,0.55);
    border: 1px dashed rgba(66,77,74,0.28);
    color: rgb(169,172,170)
}
html.night .vocab-cloze-input input {
    border: 1px solid rgba(66,77,74,0.28);
    background: rgba(19,19,19,0.72);
    color: rgb(182,189,186)
}
html.night .vocab-cloze-input input:focus {
    border-color: rgba(66,77,74,0.55);
    box-shadow: 0 0 0 3px rgba(0,0,0,0.48)
}
html.night .vocab-cloze-input input:disabled {
    background: rgba(32,29,25,0.7);
    color: rgb(167,169,166)
}
html.night .vocab-cloze-input .vocab-cloze-submit {
    background: linear-gradient(135deg,rgba(66,77,74,0.9),rgba(52,59,57,0.9));
    color: rgb(107,107,107)
}
html.night .vocab-cloze-hint span {
    color: rgb(167,169,166)
}
html.night .vocab-cloze-hint strong {
    color: rgb(182,189,186)
}
html.night .vocab-cloze-hint.known {
    background: rgba(66,77,74,0.14);
    border: 1px solid rgba(66,77,74,0.28)
}
html.night .vocab-cloze-hint.known strong {
    color: rgb(168,188,183)
}
html.night .vocab-cloze-hint.fuzzy {
    background: rgba(61,55,44,0.18);
    border: 1px solid rgba(73,65,53,0.35)
}
html.night .vocab-cloze-hint.fuzzy strong {
    color: rgb(193,182,159)
}
html.night .vocab-cloze-hint.forgot {
    background: rgba(56,41,43,0.18);
    border: 1px solid rgba(65,47,50,0.35)
}
html.night .vocab-cloze-hint.forgot strong {
    color: rgb(184,160,163)
}
html.night .vocab-review-actions button.recommend {
    outline: 2px solid rgba(66,77,74,0.55)
}
html.night .vocab-cloze-input input {
    border: 1px solid rgba(66,77,74,0.28);
    background: rgba(19,19,19,0.72);
    color: rgb(182,189,186)
}
html.night .vocab-cloze-input input:focus {
    border-color: rgba(66,77,74,0.55);
    box-shadow: 0 0 0 3px rgba(0,0,0,0.48)
}
html.night .vocab-cloze-input input:disabled {
    background: rgba(32,29,25,0.7);
    color: rgb(167,169,166)
}
html.night .vocab-cloze-input .vocab-cloze-submit {
    background: linear-gradient(135deg,rgba(66,77,74,0.9),rgba(52,59,57,0.9));
    color: rgb(107,107,107)
}
html.night .vocab-cloze-hint span {
    color: rgb(167,169,166)
}
html.night .vocab-cloze-hint strong {
    color: rgb(182,189,186)
}
html.night .vocab-cloze-hint.known {
    background: rgba(66,77,74,0.14);
    border: 1px solid rgba(66,77,74,0.28)
}
html.night .vocab-cloze-hint.known strong {
    color: rgb(168,188,183)
}
html.night .vocab-cloze-hint.fuzzy {
    background: rgba(61,55,44,0.18);
    border: 1px solid rgba(73,65,53,0.35)
}
html.night .vocab-cloze-hint.fuzzy strong {
    color: rgb(193,182,159)
}
html.night .vocab-cloze-hint.forgot {
    background: rgba(56,41,43,0.18);
    border: 1px solid rgba(65,47,50,0.35)
}
html.night .vocab-cloze-hint.forgot strong {
    color: rgb(184,160,163)
}
html.night .vocab-review-actions button.recommend {
    outline: 2px solid rgba(66,77,74,0.55)
}
html.night {
    --vk-cream: rgb(27,24,20) !important;
    --vk-cream-hi: rgb(25,23,18) !important;
    --vk-sage: rgb(46,44,38) !important;
    --vk-sage-soft: rgb(36,35,29) !important;
    --vk-pink: rgb(34,25,25) !important;
    --vk-pink-soft: rgb(28,21,20) !important;
    --vk-mocha: rgb(74,71,68) !important;
    --vk-mocha-deep: rgb(179,176,173) !important;
    --vk-mocha-mute: rgb(59,56,53) !important
}
html.night .vocab-card,html.night .vocab-editor {
    background-image: linear-gradient(rgba(74,71,68,0.06) 1px,transparent 1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.24)
}
html.night .vocab-card input,html.night .vocab-card textarea,html.night .vocab-editor input,html.night .vocab-editor textarea {
    background: rgba(25,23,18,0.7)
}
html.night .vocab-overlay.open {
    background: rgba(71,68,66,0.18)
}
html.night .vocab-review-card {
    box-shadow: 0 6px 18px rgba(0,0,0,0.3)
}
html.night .vocab-sentence-field {
    border: 1px solid rgba(49,52,58,0.45);
    background: rgb(20,20,20);
    color: rgb(166,169,178)
}
html.night .vocab-sentence-field:focus {
    border-color: rgb(49,52,58);
    box-shadow: 0 0 0 3px rgba(24,30,34,0.8)
}
html.night .vocab-review-panel .vocab-modes button.active,html.night .vocab-modes button.active {
    background: rgb(20,20,20);
    color: rgb(166,169,178)
}
html.night .vocab-review-panel .vocab-review-card {
    background: rgb(20,20,20);
    border-color: rgb(24,30,34);
    color: rgb(166,169,178)
}
html.night .vocab-review-panel .vocab-cloze {
    border-color: rgb(24,30,34);
    color: rgb(142,145,156)
}
html.night .vocab-review-panel .vocab-reveal {
    background: rgb(49,52,58);
    color: rgb(107,107,107)
}
html.night .vocab-review-panel .vocab-review-answer {
    background: rgb(24,30,34)
}
html.night .vocab-review-panel .vocab-review-answer strong,html.night .vocab-review-panel .vocab-review-empty strong {
    color: rgb(166,169,178)
}
html.night .vocab-day-progress {
    background: rgb(23,21,17);
    border: 1px solid rgb(41,36,34)
}
html.night .vocab-day-progress>div:first-child {
    color: rgb(151,142,143)
}
html.night .vocab-day-progress b {
    color: rgb(167,180,176)
}
html.night .vocab-day-progress small {
    color: rgb(151,142,143)
}
html.night .vocab-progress-track {
    background: rgb(32,28,26)
}
html.night .vocab-progress-track i {
    background: rgb(69,78,75)
}
html.night .vocab-settings-button {
    color: rgb(151,142,143)
}
html.night .vocab-review-complete i {
    background: rgb(69,78,75);
    color: rgb(107,107,107)
}
html.night .vocab-review-complete strong {
    color: rgb(168,181,177)
}
html.night .vocab-review-complete span {
    color: rgb(151,142,143)
}
html.night .vocab-schedule-settings h3 {
    color: rgb(168,181,177)
}
html.night .vocab-schedule-settings p,html.night .vocab-schedule-settings span,html.night .vocab-schedule-settings label {
    color: rgb(151,142,143)
}
html.night .vocab-schedule-settings input {
    border: 1px solid rgb(41,36,34);
    background: rgb(23,21,17);
    color: rgb(168,181,177)
}
html.night .vocab-sentence-feedback {
    color: rgb(175,170,171);
    background: rgb(23,21,17);
    border: 1px solid rgb(39,33,31)
}
html.night .vocab-sentence-feedback strong {
    color: rgb(167,180,176)
}
html.night .vocab-sentence-feedback div {
    border-top: 1px solid rgb(34,28,26)
}
html.night .vocab-sentence-feedback span {
    color: rgb(148,138,140)
}
html.night .vocab-sentence-feedback em {
    color: rgb(178,172,173)
}
html.night .vocab-sentence-feedback.correct {
    border-left: 3px solid rgb(69,78,75)
}
html.night .vocab-sentence-feedback.almost {
    border-left: 3px solid rgb(78,70,56)
}
html.night .vocab-sentence-feedback.needs_work {
    border-left: 3px solid rgb(72,55,57)
}
html.night .vocab-sentence-field:disabled {
    color: rgb(155,149,151);
    background: rgb(28,25,23)
}
html.night .vocab-wikilink,html.night .vocab-backlink {
    color: rgb(161,166,175);
    border-bottom: 1px solid rgb(39,43,50)
}
html.night .vocab-wikilink.dangling {
    color: rgb(152,141,147)
}
html.night .vocab-photo-delete {
    color: rgb(107,107,107)
}
html.night .pstack-badge {
    color: rgb(107,107,107)
}
html.night .forge-sheet {
    background: rgba(24,20,24,0.97);
    box-shadow: 0 -16px 46px rgba(0,0,0,0.48)
}
html.night .forge-sheet-handle {
    background: rgb(40,37,40)
}
html.night {
    --rc-paper: rgb(34,31,25) !important;
    --rc-ink: rgb(103,98,90) !important;
    --rc-faded: rgb(56,55,51) !important;
    --rc-veryfaded: rgb(59,57,51) !important;
    --rc-stamp: rgb(71,53,52) !important;
    --rc-overdue: rgb(87,65,63) !important
}
html.night body {
    background: rgb(49,46,41)
}
html.night .sheet {
    background-image: radial-gradient(ellipse at top, rgba(27,26,20,0.12) 0%, transparent 55%),
      repeating-linear-gradient(90deg, rgba(60,40,20,0.012) 0, rgba(60,40,20,0.012) 1px, transparent 1px, transparent 2px)
}
html.night .standalone-voice-topbar {
    background: rgba(19,19,19,0.82)
}
html.night .standalone-voice-card {
    background: rgba(19,19,19,0.88);
    box-shadow: 0 4px 14px rgba(0,0,0,0.21)
}
html.night .standalone-voice-grid button,html.night .standalone-voice-actions button {
    background: rgb(24,21,23)
}
html.night .standalone-voice-grid button[style*="var(--accent)"] {
    color: rgb(107,107,107) !important
}
html.night .standalone-voice-card select,html.night .standalone-voice-card input:not([type=range]) {
    background: rgb(19,19,19)
}
html.night .standalone-voice-actions button:first-child {
    color: rgb(107,107,107)
}
html.night [style*="color:#c44"]{color:rgb(173,126,126)!important}
html.night [style*="color:#c66"]{color:rgb(167,118,118)!important}

/* ---- 手调 ---- */
/* 手调：自动换色之外需要专门处理的地方 */
html.night{--bg:#121114!important;--ai-bubble:#1F1D22!important;--user-bubble:#2A2530!important;--surface:rgba(30,28,33,.82)!important;--card:rgba(30,28,33,.72)!important;--border:rgba(255,255,255,.07)!important;--hairline:rgba(255,255,255,.05)!important;--text:#BDB9C2!important;--text-m:#9C98A2!important;--text-l:#77737D!important;--accent:#9C8AB0!important;--accent-light:#26222B!important}
html.night body{background:#121114}
/* 自定义壁纸：压暗 */
html.night .chat-wall{filter:brightness(.38) saturate(.7)}
/* 图片、贴纸、视频略降亮度，避免夜里刺眼 */
html.night .msg-bubble img,html.night .attachment-grid img,html.night video,html.night .photo-stack img{filter:brightness(.82)}
html.night img[src*="/static/stickers"],html.night img[src*="sticker"]{filter:brightness(.85)}
html.night input,html.night textarea,html.night select{color:var(--text)}
html.night ::placeholder{color:#5F5B65!important}
html.night .hljs{background:#18171B!important;color:#BDB9C2!important}
html.night .toggle-slider:before,html.night .toggle-slider::before{background:#CFCAD4}
html.night .chat-wall{background-color:#121114!important}

/* 今日清单小票：暗纸 + 浅墨 */
html.night{--rc-paper:#24211C!important;--rc-ink:#CFC6B8!important;--rc-faded:#9A9284!important;--rc-veryfaded:#6E685E!important;--rc-stamp:#B4615A!important;--rc-overdue:#C97A6E!important}
html.night .btn-save{color:#F1EEF5}
/* 设置里的配色色块是白天预览，夜里略压暗 */
html.night .color-opt,html.night .theme-dots span,html.night .bg-opt-preview{filter:brightness(.6)}
html.night .msg-avatar,html.night .contact-avatar{filter:brightness(.62) saturate(.8)}
/* 气泡：白天的玻璃高光是半透明白，自动换色会变成黑斑，夜里改成干净的纯色 */
html.night .msg-row.user .msg-bubble,html.night .msg-row.assistant .msg-bubble,html.night #chatMsgs .msg-row.assistant .msg-bubble{background:#1F1D22!important;border:1px solid rgba(255,255,255,.06)!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html.night .msg-row.user .msg-bubble{background:#2A2530!important;border-color:rgba(190,170,215,.10)!important}
html.night .msg-row.user .msg-bubble::before,html.night .msg-row.assistant .msg-bubble::before,html.night .msg-row.user .msg-bubble::after,html.night .msg-row.assistant .msg-bubble::after,html.night #chatMsgs .msg-row.assistant .msg-bubble::before,html.night #chatMsgs .msg-row.assistant .msg-bubble::after{background:none!important;box-shadow:none!important;opacity:0!important}
html.night .msg-row.user.note-row .msg-bubble{background:#24211C!important;border:1px dashed rgba(207,198,184,.28)!important}
html.night .generation-failed-row .msg-bubble{background:#2A1D1D!important}
