/* ========== VmBaseTool Dark Theme (V5.11.0) ========== */
/* All rules prefixed with .dark-mode */

/* ========== Global ========== */
.dark-mode { background: #1f1f1f !important; color: #e0e0e0 !important; }
.dark-mode a { color: #4da3ff; }
.dark-mode ::-webkit-scrollbar { width: 8px; height: 8px; }
.dark-mode ::-webkit-scrollbar-track { background: #2a2a2a; }
.dark-mode ::-webkit-scrollbar-thumb { background: #555; border-radius: 4px; }
.dark-mode ::-webkit-scrollbar-thumb:hover { background: #666; }

/* ========== Loading ========== */
.dark-mode #loading { background: #1f1f1f; }
.dark-mode .dot { background: #4da3ff; }

/* ========== Top Nav ========== */
.dark-mode .top-nav { background: #2a2a2a; box-shadow: 0 1px 4px rgba(0,0,0,.3); }
.dark-mode .top-nav .logo .logo-text { color: #e0e0e0; }
.dark-mode .top-nav .nav-item { color: #bbb; }
.dark-mode .top-nav .nav-item:hover { color: #4da3ff; }
.dark-mode .top-nav .nav-item.active { color: #4da3ff; border-bottom-color: #4da3ff; }
.dark-mode .top-nav .nav-right .icon-btn { color: #bbb; }
.dark-mode .top-nav .nav-right .icon-btn:hover { background: #3a3a3a; color: #4da3ff; }
.dark-mode .top-nav .nav-right .username { color: #ccc; }
.dark-mode .role-badge { background: #1a3a5c !important; color: #4da3ff !important; }

/* ========== Tab Bar ========== */
.dark-mode .tab-bar { background: #2a2a2a; border-bottom-color: #3a3a3a; }
.dark-mode .tab-bar .tab { background: #333; border-color: #3a3a3a; color: #bbb; }
.dark-mode .tab-bar .tab:hover { color: #4da3ff; }
.dark-mode .tab-bar .tab.active { background: #1a3a5c; color: #4da3ff; border-color: #4da3ff; }
.dark-mode .tab-bar .tab .tab-close { color: #888; }
.dark-mode .tab-bar .tab .tab-close:hover { background: rgba(255,255,255,.1); color: #e0e0e0; }
.dark-mode .tab-bar .tab.pinned { border-color: #4da3ff; background: #1a3050; }
.dark-mode .tab-bar .tab.pinned.active { background: #1a3a5c; }

/* ========== Main Content ========== */
.dark-mode .app-content { background: #1f1f1f; }
.dark-mode .page-title { color: #e0e0e0; }
.dark-mode .page-subtitle { color: #888; }

/* ========== Dashboard ========== */
.dark-mode .stat-card { background: #2a2a2a; box-shadow: 0 1px 4px rgba(0,0,0,.3); }
.dark-mode .stat-card .stat-label { color: #999; }
.dark-mode .stat-card .stat-value { color: #e0e0e0; }
.dark-mode .info-card { background: #2a2a2a; box-shadow: 0 1px 4px rgba(0,0,0,.3); }
.dark-mode .info-card h3 { color: #e0e0e0; }
.dark-mode .info-card .info-row { border-bottom-color: #3a3a3a; }
.dark-mode .info-card .info-row .label { color: #999; }
.dark-mode .info-card .info-row .value { color: #e0e0e0; }
.dark-mode .sys-progress-bar { background: #3a3a3a; }

/* ========== Buttons ========== */
.dark-mode .btn { background: #333; border-color: #555; color: #e0e0e0; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.dark-mode .btn:hover { border-color: #4da3ff; color: #4da3ff; box-shadow: 0 3px 8px rgba(77,163,255,.15); }

/* ========== Page Toolbar ========== */
.dark-mode .page-toolbar .btn { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .page-toolbar .btn:hover { border-color: #4da3ff; color: #4da3ff; }
.dark-mode .page-toolbar .search-input { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .page-toolbar .search-input:focus { border-color: #4da3ff; box-shadow: 0 0 0 2px rgba(77,163,255,.2); }
.dark-mode .page-toolbar .search-input::placeholder { color: #777; }

/* ========== Status Badges ========== */
.dark-mode .badge-online { background: #1a3a1a; border-color: #3a6a3a; }
.dark-mode .badge-offline { background: #333; border-color: #555; color: #999; }
.dark-mode .badge-sleep { background: #3a3020; border-color: #6a5a30; }
.dark-mode .badge-lost { background: #3a1a1a; border-color: #6a3a3a; }
.dark-mode .badge-hb { background: #333; border-color: #555; color: #999; }
.dark-mode .badge-hb.fresh { background: #1a3a1a; border-color: #3a6a3a; }

/* ========== Relay Tree ========== */
.dark-mode .has-children { background: #1a2a3a !important; border-left-color: #4da3ff; }
.dark-mode .relay-child-row { background: #252525 !important; }
.dark-mode .child-count-badge { background: #1a3050; color: #4da3ff; }

/* ========== VS Table ========== */
.dark-mode .vs-table th { background: #2a2a2a; border-bottom-color: #3a3a3a; color: #ccc; }
.dark-mode .vs-table td { border-bottom-color: #333; color: #e0e0e0; }
.dark-mode .vs-table tr:hover td { background: #1a2a3a; }

/* ========== Data Table ========== */
.dark-mode .data-table { background: #2a2a2a; box-shadow: 0 1px 4px rgba(0,0,0,.3); }
.dark-mode .data-table th { background: #333; border-bottom-color: #3a3a3a; color: #ccc; }
.dark-mode .data-table td { border-bottom-color: #333; color: #e0e0e0; }
.dark-mode .data-table tr:hover td { background: #1a2a3a; }
.dark-mode .data-table .actions a { color: #4da3ff; }
.dark-mode .data-table .actions a.danger { color: #ff6b6b; }

/* ========== Pagination ========== */
.dark-mode .pagination { color: #999; }
.dark-mode .pg-total { color: #777; }
.dark-mode .pg-btn { background: #333; border-color: #555; color: #ccc; }
.dark-mode .pg-btn:hover:not(:disabled):not(.active) { border-color: #4da3ff; color: #4da3ff; }
.dark-mode .pg-btn:disabled { color: #555; border-color: #3a3a3a; }
.dark-mode .pg-size { background: #333; border-color: #555; color: #ccc; }

/* ========== Modals ========== */
.dark-mode .modal-mask { background: rgba(0,0,0,.65); }
.dark-mode .modal-box { background: #2a2a2a; }
.dark-mode .modal-header { border-bottom-color: #3a3a3a; }
.dark-mode .modal-header .title { color: #e0e0e0; }
.dark-mode .modal-header .close { color: #888; }
.dark-mode .modal-body { color: #e0e0e0; }
.dark-mode .modal-footer { border-top-color: #3a3a3a; }
.dark-mode .modal-footer .btn { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .modal-footer .btn:hover { border-color: #4da3ff; color: #4da3ff; }

/* ========== Context Menu ========== */
.dark-mode .ctx-menu { background: #2a2a2a; box-shadow: 0 6px 20px rgba(0,0,0,.4); }
.dark-mode .ctx-menu .ctx-item { color: #e0e0e0; }
.dark-mode .ctx-menu .ctx-item:hover { background: #3a3a3a; }
.dark-mode .ctx-menu .ctx-item i { color: #999; }
.dark-mode .ctx-sep { background: #3a3a3a; }

/* ========== Toast ========== */
.dark-mode .toast { background: #2a2a2a; box-shadow: 0 4px 12px rgba(0,0,0,.4); }

/* ========== File Manager ========== */
.dark-mode .file-manager { background: #2a2a2a; box-shadow: 0 1px 4px rgba(0,0,0,.3); }
.dark-mode .file-tree { background: #252525; border-right-color: #3a3a3a; }
.dark-mode .file-tree-header { border-bottom-color: #3a3a3a; }
.dark-mode .file-tree-header input { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .file-tree-header .icon-btn { color: #999; }
.dark-mode .file-tree-header .icon-btn:hover { color: #4da3ff; background: #3a3a3a; }
.dark-mode .file-tree-item { color: #ccc; }
.dark-mode .file-tree-item:hover { background: #1a2a3a; }
.dark-mode .file-tree-item.active { background: #1a3050; color: #4da3ff; }
.dark-mode .file-tree-item.root { color: #4da3ff; border-bottom-color: #3a3a3a; }
.dark-mode .file-content { background: #2a2a2a; }
.dark-mode .file-toolbar { background: #252525; border-bottom-color: #3a3a3a; }
.dark-mode .file-toolbar input.path-input { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .file-toolbar .icon-btn { color: #999; }
.dark-mode .file-toolbar .icon-btn:hover { background: #3a3a3a; color: #4da3ff; }
.dark-mode .file-list th { background: #333; border-bottom-color: #3a3a3a; color: #ccc; }
.dark-mode .file-list td { border-bottom-color: #333; color: #e0e0e0; }
.dark-mode .file-list tr:hover td { background: #1a2a3a; }
.dark-mode .file-list .empty { color: #777; }
.dark-mode .file-list .empty i { color: #555; }

/* ========== File Toolbar V2 ========== */
.dark-mode .ftb-icon { color: #999; }
.dark-mode .ftb-icon:hover { background: #3a3a3a; color: #4da3ff; }
.dark-mode .ftb-sep { color: #555; }
.dark-mode .ftb-seg { color: #999; }
.dark-mode .ftb-seg:hover { background: #3a3a3a; color: #4da3ff; }
.dark-mode .ftb-seg.current { color: #4da3ff; }
.dark-mode .ftb-path-input { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .ftb-path-input:focus { border-color: #4da3ff; }
.dark-mode .ftb-action-btn { background: #333; border-color: #555; color: #ccc; }
.dark-mode .ftb-action-btn:hover { border-color: #4da3ff; color: #4da3ff; background: #1a2a3a; }

/* ========== File Actions ========== */
.dark-mode .file-actions a { color: #4da3ff; }
.dark-mode .file-actions a:hover { background: #1a2a3a; }
.dark-mode .file-actions a.danger { color: #ff6b6b; }
.dark-mode .file-actions a.danger:hover { background: #3a1a1a; }

/* ========== Settings ========== */
.dark-mode .settings-form .form-label { color: #ccc; }
.dark-mode .settings-form .form-input { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .settings-form .form-input:focus { border-color: #4da3ff; }
.dark-mode .settings-section { background: #2a2a2a; border-color: #3a3a3a; }
.dark-mode .section-title { color: #e0e0e0; }

/* ========== Radio Group ========== */
.dark-mode .radio-btn { background: #333; border-color: #555; color: #ccc; }
.dark-mode .radio-btn:hover:not(.active) { border-color: #4da3ff; color: #4da3ff; background: #1a2a3a; }

/* ========== Toggle Switch ========== */
.dark-mode .toggle-switch { background: #555; }

/* ========== Gen Panel ========== */
.dark-mode .gen-panel { background: #2a2a2a; box-shadow: 0 1px 4px rgba(0,0,0,.3); }
.dark-mode .gen-panel h3 { color: #e0e0e0; }
.dark-mode .gen-panel .text-muted { color: #888; }
.dark-mode .gen-panel .form-label { color: #ccc; }
.dark-mode .gen-panel .form-input { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .gen-panel .form-input:focus { border-color: #4da3ff; }

/* ========== OSS Panel ========== */
.dark-mode .oss-tabs { background: #252525; border-bottom-color: #3a3a3a; }
.dark-mode .oss-tab { color: #999; }
.dark-mode .oss-tab:hover { color: #4da3ff; }
.dark-mode .oss-tab.active { color: #4da3ff; border-bottom-color: #4da3ff; }
.dark-mode .oss-dir-btn { background: #333; border-color: #555; color: #ccc; }
.dark-mode .oss-dir-btn:hover:not(.active) { border-color: #4da3ff; color: #4da3ff; background: #1a2a3a; }
.dark-mode .oss-form-section .form-row label { color: #ccc; }
.dark-mode .oss-form-section .form-row input,
.dark-mode .oss-form-section .form-row select { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .oss-form-section .form-row input:focus,
.dark-mode .oss-form-section .form-row select:focus { border-color: #4da3ff; }
.dark-mode .oss-submit-bar { border-top-color: #3a3a3a; }
.dark-mode .oss-submit-btn.cancel { background: #333; color: #ccc; border-color: #555; }
.dark-mode .oss-submit-btn.cancel:hover { border-color: #4da3ff; color: #4da3ff; }

/* ========== Bucket Cards ========== */
.dark-mode .bucket-card { background: #2a2a2a; border-color: #3a3a3a; }
.dark-mode .bucket-card:hover { border-color: #4da3ff; box-shadow: 0 4px 16px rgba(77,163,255,.15); }
.dark-mode .bucket-card .bc-name { color: #e0e0e0; }
.dark-mode .bucket-card .bc-info { color: #888; }
.dark-mode .bucket-card .bc-info span { color: #ccc; }
.dark-mode .bucket-card .bc-actions .bc-edit { background: #1a2a3a; color: #4da3ff; }
.dark-mode .bucket-card .bc-actions .bc-edit:hover { background: #4da3ff; color: #fff; }
.dark-mode .bucket-card .bc-actions .bc-del { background: #3a1a1a; color: #ff6b6b; }
.dark-mode .bucket-card .bc-actions .bc-del:hover { background: #ff6b6b; color: #fff; }
.dark-mode .bucket-add-card { border-color: #555; color: #888; }
.dark-mode .bucket-add-card:hover { border-color: #4da3ff; color: #4da3ff; background: #1a2a3a; }

/* ========== Terminal ========== */
.dark-mode .term-mode-bar { background: #252525; border-bottom-color: #3a3a3a; }
.dark-mode .term-mode-btn { background: #333; border-color: #555; color: #ccc; }
.dark-mode .term-mode-btn:hover { border-color: #4da3ff; color: #4da3ff; background: #1a2a3a; }
.dark-mode .term-mode-bar .btn { background: #333; border-color: #555; color: #ccc; }
.dark-mode .term-mode-bar .btn:hover { border-color: #4da3ff; color: #4da3ff; }

/* ========== Upload Modal ========== */
.dark-mode .upload-tabs { background: #252525; border-bottom-color: #3a3a3a; }
.dark-mode .upload-tab { color: #999; }
.dark-mode .upload-tab:hover { color: #4da3ff; }
.dark-mode .upload-tab.active { color: #4da3ff; border-bottom-color: #4da3ff; }
.dark-mode .upload-dropzone { border-color: #555; }
.dark-mode .upload-dropzone:hover { border-color: #4da3ff; background: #1a2a3a; }
.dark-mode .upload-dropzone.dragover { border-color: #4da3ff; background: #1a3050; }
.dark-mode .upload-queue-item { background: #333; }
.dark-mode .upload-queue-name { color: #e0e0e0; }
.dark-mode .upload-queue-size { color: #888; }
.dark-mode .upload-queue-path { color: #777; }
.dark-mode .upload-queue-remove { color: #888; }
.dark-mode .upload-queue-remove:hover { background: #3a1a1a; color: #ff6b6b; }

/* ========== Download Panel ========== */
.dark-mode .dl-panel { background: #2a2a2a; border-bottom-color: #3a3a3a; }
.dark-mode .dl-panel-header { background: #333; border-bottom-color: #3a3a3a; color: #e0e0e0; }
.dark-mode .dl-item { border-bottom-color: #3a3a3a; }
.dark-mode .dl-item-info { color: #e0e0e0; }
.dark-mode .dl-progress-bar { background: #3a3a3a; }

/* ========== Editor Modal ========== */
.dark-mode .editor-modal { background: #1e1e1e; }
.dark-mode .editor-header { background: #252525; border-bottom-color: #3a3a3a; }

/* ========== Chmod Table ========== */
.dark-mode .chmod-table th { background: #333; color: #ccc; }
.dark-mode .chmod-table td { border-bottom-color: #3a3a3a; }
.dark-mode .chmod-table td:first-child { color: #e0e0e0; }

/* ========== Popconfirm ========== */
.dark-mode .popconfirm { background: #2a2a2a; box-shadow: 0 3px 16px rgba(0,0,0,.4); }
.dark-mode .popconfirm-body { color: #e0e0e0; }

/* ========== Time Edit Form ========== */
.dark-mode .time-edit-form label { color: #ccc; }
.dark-mode .time-edit-form .time-input { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .time-edit-form .time-input:focus { border-color: #4da3ff; }

/* ========== Remark Edit ========== */
.dark-mode .remark-cell:hover { color: #4da3ff; }
.dark-mode .remark-edit-input { background: #333; border-color: #4da3ff; color: #e0e0e0; }

/* ========== VS Card / Page ========== */
.dark-mode .vs-card { background: #2a2a2a; border-color: #3a3a3a; }

/* ========== Sub Tabs ========== */
.dark-mode .sub-tabs { border-bottom-color: #3a3a3a; }
.dark-mode .sub-tabs .sub-tab { color: #999; }
.dark-mode .sub-tabs .sub-tab:hover { color: #4da3ff; }
.dark-mode .sub-tabs .sub-tab.active { color: #4da3ff; border-bottom-color: #4da3ff; }

/* ========== Group Tags ========== */
.dark-mode .group-tag { opacity: 0.85; }

/* ========== User Dropdown ========== */
.dark-mode .user-dropdown { background: #2a2a2a; box-shadow: 0 6px 20px rgba(0,0,0,.4); }
.dark-mode .dropdown-item { color: #e0e0e0; }
.dark-mode .dropdown-item:hover { background: #3a3a3a; }
.dark-mode .dropdown-item i { color: #999; }

/* ========== Sysinfo Cards (V5.11.0) ========== */
.dark-mode .sysinfo-card { background: #2a2a2a !important; border-color: #3a3a3a !important; }
.dark-mode .sysinfo-card-title { color: #e0e0e0 !important; border-bottom-color: #3a3a3a !important; }
.dark-mode .sysinfo-kv-value { color: #e0e0e0 !important; }
.dark-mode .sysinfo-kv-label { color: #999 !important; }
.dark-mode .sysinfo-row { border-bottom-color: #3a3a3a !important; }
.dark-mode .sysinfo-header { border-bottom-color: #3a3a3a !important; }
.dark-mode .sysinfo-progress-bg { background: #444 !important; }
.dark-mode .sysinfo-progress-text { color: #bbb !important; }
.dark-mode .sysinfo-cache-hint { background: #3a3520 !important; border-color: #5a4a20 !important; color: #d4a800 !important; }
.dark-mode .sysinfo-cell { color: #ccc !important; }

/* ========== Antd Component Overrides ========== */

/* Modal */
.dark-mode .ant-modal-content { background: #2a2a2a !important; }
.dark-mode .ant-modal-header { background: #2a2a2a !important; border-bottom-color: #3a3a3a !important; }
.dark-mode .ant-modal-title { color: #e0e0e0 !important; }
.dark-mode .ant-modal-close-x { color: #888 !important; }
.dark-mode .ant-modal-body { color: #e0e0e0 !important; }
.dark-mode .ant-modal-footer { border-top-color: #3a3a3a !important; }

/* Input */
.dark-mode .ant-input,
.dark-mode .ant-input-affix-wrapper,
.dark-mode .ant-input-number,
.dark-mode .ant-input-number-input { background: #333 !important; border-color: #555 !important; color: #e0e0e0 !important; }
.dark-mode .ant-input:focus,
.dark-mode .ant-input-focused,
.dark-mode .ant-input-affix-wrapper-focused,
.dark-mode .ant-input-number-focused { border-color: #4da3ff !important; box-shadow: 0 0 0 2px rgba(77,163,255,.2) !important; }
.dark-mode .ant-input::placeholder,
.dark-mode .ant-input-number-input::placeholder { color: #777 !important; }
.dark-mode .ant-input-password-icon { color: #888 !important; }

/* Select */
.dark-mode .ant-select-selector { background: #333 !important; border-color: #555 !important; color: #e0e0e0 !important; }
.dark-mode .ant-select-focused .ant-select-selector { border-color: #4da3ff !important; box-shadow: 0 0 0 2px rgba(77,163,255,.2) !important; }
.dark-mode .ant-select-dropdown { background: #2a2a2a !important; box-shadow: 0 6px 20px rgba(0,0,0,.4) !important; }
.dark-mode .ant-select-item { color: #e0e0e0 !important; }
.dark-mode .ant-select-item-option-active { background: #3a3a3a !important; }
.dark-mode .ant-select-item-option-selected { background: #1a3050 !important; }
.dark-mode .ant-select-arrow { color: #888 !important; }
.dark-mode .ant-select-clear { background: #333 !important; color: #888 !important; }
.dark-mode .ant-select-selection-placeholder { color: #777 !important; }

/* Button — ant-btn is the base class for all default buttons in antd-vue 3.2.20 */
.dark-mode .ant-btn { background: #333 !important; border-color: #555 !important; color: #e0e0e0 !important; }
.dark-mode .ant-btn:hover, .dark-mode .ant-btn:focus { border-color: #4da3ff !important; color: #4da3ff !important; }
.dark-mode .ant-btn-primary { background: #1890ff !important; border-color: #1890ff !important; color: #fff !important; }
.dark-mode .ant-btn-primary:hover { background: #40a9ff !important; border-color: #40a9ff !important; color: #fff !important; }
.dark-mode .ant-btn-default { background: #333 !important; border-color: #555 !important; color: #e0e0e0 !important; }
.dark-mode .ant-btn-default:hover { border-color: #4da3ff !important; color: #4da3ff !important; }
.dark-mode .ant-btn-dangerous { background: #333 !important; border-color: #ff4d4f !important; color: #ff4d4f !important; }
.dark-mode .ant-btn-dangerous:hover { background: #ff4d4f !important; border-color: #ff4d4f !important; color: #fff !important; }
.dark-mode .ant-btn[disabled] { background: #2a2a2a !important; border-color: #444 !important; color: #666 !important; }
.dark-mode .ant-btn-link { color: #4da3ff !important; }

/* Tabs */
.dark-mode .ant-tabs-nav { border-bottom-color: #3a3a3a !important; }
.dark-mode .ant-tabs-tab { color: #999 !important; }
.dark-mode .ant-tabs-tab:hover { color: #4da3ff !important; }
.dark-mode .ant-tabs-tab-active .ant-tabs-tab-btn { color: #4da3ff !important; }
.dark-mode .ant-tabs-ink-bar { background: #4da3ff !important; }

/* Radio */
.dark-mode .ant-radio-button-wrapper { background: #333 !important; border-color: #555 !important; color: #ccc !important; }
.dark-mode .ant-radio-button-wrapper:hover { color: #4da3ff !important; }
.dark-mode .ant-radio-button-wrapper-checked { background: #1a3050 !important; border-color: #4da3ff !important; color: #4da3ff !important; }

/* Switch */
.dark-mode .ant-switch { background: #555 !important; }
.dark-mode .ant-switch-checked { background: #1890ff !important; }

/* Checkbox */
.dark-mode .ant-checkbox-inner { background: #333 !important; border-color: #555 !important; }
.dark-mode .ant-checkbox-checked .ant-checkbox-inner { background: #1890ff !important; border-color: #1890ff !important; }
.dark-mode .ant-checkbox-wrapper { color: #e0e0e0 !important; }

/* Pagination */
.dark-mode .ant-pagination-item { background: #333 !important; border-color: #555 !important; }
.dark-mode .ant-pagination-item a { color: #ccc !important; }
.dark-mode .ant-pagination-item-active { border-color: #4da3ff !important; }
.dark-mode .ant-pagination-item-active a { color: #4da3ff !important; }
.dark-mode .ant-pagination-prev .ant-pagination-item-link,
.dark-mode .ant-pagination-next .ant-pagination-item-link { background: #333 !important; border-color: #555 !important; color: #ccc !important; }

/* Dropdown */
.dark-mode .ant-dropdown-menu { background: #2a2a2a !important; box-shadow: 0 6px 20px rgba(0,0,0,.4) !important; }
.dark-mode .ant-dropdown-menu-item { color: #e0e0e0 !important; }
.dark-mode .ant-dropdown-menu-item:hover { background: #3a3a3a !important; }

/* Tooltip */
.dark-mode .ant-tooltip-inner { background: #3a3a3a !important; color: #e0e0e0 !important; }
.dark-mode .ant-tooltip-arrow-content { background: #3a3a3a !important; }

/* Popover */
.dark-mode .ant-popover-inner { background: #2a2a2a !important; }
.dark-mode .ant-popover-inner-content { color: #e0e0e0 !important; }
.dark-mode .ant-popover-title { color: #e0e0e0 !important; border-bottom-color: #3a3a3a !important; }

/* Message / Notification */
.dark-mode .ant-message-notice-content { background: #2a2a2a !important; box-shadow: 0 4px 12px rgba(0,0,0,.4) !important; color: #e0e0e0 !important; }
.dark-mode .ant-notification-notice { background: #2a2a2a !important; box-shadow: 0 4px 12px rgba(0,0,0,.4) !important; }
.dark-mode .ant-notification-notice-message { color: #e0e0e0 !important; }
.dark-mode .ant-notification-notice-description { color: #ccc !important; }
.dark-mode .ant-notification-notice-close { color: #888 !important; }

/* Slider */
.dark-mode .ant-slider-rail { background: #3a3a3a !important; }
.dark-mode .ant-slider-track { background: #1890ff !important; }

/* Form labels */
.dark-mode .ant-form-item-label > label { color: #ccc !important; }

/* Breadcrumb */
.dark-mode .ant-breadcrumb-link { color: #999 !important; }
.dark-mode .ant-breadcrumb-link a { color: #4da3ff !important; }
.dark-mode .ant-breadcrumb-separator { color: #555 !important; }

/* ========== V5.11.0 Dark Mode Patch ========== */

/* ── Login Page ── */
.dark-mode .login-card { background: #2a2a2a; box-shadow: 0 8px 32px rgba(0,0,0,.5); }
.dark-mode .login-form .form-group label { color: #ccc; }
.dark-mode .login-form input { background: #333; border-color: #555; color: #e0e0e0; }
.dark-mode .login-form input:focus { border-color: #4da3ff; box-shadow: 0 0 0 2px rgba(77,163,255,.2); }
.dark-mode .login-form input::placeholder { color: #777; }

/* ── Screenshot ── */
.dark-mode .screenshot-container { background: #2a2a2a; }

/* ── Cmd Section ── */
.dark-mode .cmd-section h4 { background: #333; border-color: #3a3a3a; color: #e0e0e0; }

/* ── Badge running/stopped ── */
.dark-mode .badge-running { background: #1a3a1a; border-color: #3a6a3a; }
.dark-mode .badge-stopped { background: #333; border-color: #555; color: #999; }

/* ── Gen Button Secondary ── */
.dark-mode .gen-btn-secondary { background: #2a2a2a; color: #4da3ff; border-color: #4da3ff; }

/* ── Download Item Progress ── */
.dark-mode .dl-item-progress { background: #3a3a3a; }

/* ── Settings: disabled input ── */
.dark-mode .ant-input[disabled],
.dark-mode .ant-input-disabled { background: #252525 !important; color: #888 !important; }

/* ── form-input (原生input) ── */
.dark-mode .form-input,
.dark-mode input.form-input { background: #333 !important; border-color: #555 !important; color: #e0e0e0 !important; }
.dark-mode .form-input:focus { border-color: #4da3ff !important; }
.dark-mode .form-input::placeholder { color: #777 !important; }

/* ── antd Button text ── */
.dark-mode .ant-btn-text { color: #e0e0e0 !important; }
.dark-mode .ant-btn-text:hover { color: #4da3ff !important; background: rgba(77,163,255,.1) !important; }

/* ── antd Slider handle ── */
.dark-mode .ant-slider-handle { background: #e0e0e0 !important; border-color: #1890ff !important; }

/* ── antd Tag ── */
.dark-mode .ant-tag { background: #333 !important; border-color: #555 !important; color: #ccc !important; }

/* ── 分组标签 ── */
.dark-mode .group-tag { opacity: 0.75; filter: brightness(0.7) saturate(1.2); }

/* ── 磁盘选择卡片 ── */
.dark-mode .disk-card { background: #2a2a2a !important; border-color: #3a3a3a !important; }
.dark-mode .disk-card:hover { border-color: #4da3ff !important; }
.dark-mode .disk-progress-bg { background: #3a3a3a !important; }

/* ── Upload Dropzone 文字 ── */
.dark-mode .upload-hint { color: #999 !important; }
.dark-mode .upload-hint-sub { color: #666 !important; }
.dark-mode .upload-queue-title { color: #e0e0e0 !important; }

/* ── 提示条 (通用class) ── */
.dark-mode .hint-danger { background: #3a2020 !important; border-color: #5a3030 !important; color: #ff8080 !important; }
.dark-mode .hint-warning { background: #3a3520 !important; border-color: #5a4a20 !important; color: #d4a800 !important; }
.dark-mode .hint-success { background: #1a3a1a !important; border-color: #3a6a3a !important; color: #73d13d !important; }
.dark-mode .hint-neutral { background: #333 !important; color: #999 !important; }

/* ── 推流节点页 ── */
.dark-mode .stream-card { background: #2a2a2a !important; border-color: #3a3a3a !important; }
.dark-mode .stream-th { background: #333 !important; color: #ccc !important; border-bottom-color: #3a3a3a !important; }
.dark-mode .stream-td { border-bottom-color: #3a3a3a !important; }
.dark-mode .stream-label { font-weight: 500; }
.dark-mode .proto-badge-tcp { background: #1a3a1a !important; color: #52c41a !important; }
.dark-mode .proto-badge-kcp { background: #1a2a3a !important; color: #1890ff !important; }

/* ── 命令执行结果 ── */
.dark-mode .cmd-result-pre { background: #333 !important; color: #e0e0e0 !important; }
.dark-mode .cmd-copy-btn { background: #333 !important; border-color: #555 !important; color: #ccc !important; }

/* ── GlobalModal message ── */
.dark-mode .modal-message { color: #e0e0e0 !important; }

/* ── OSS 分隔线 ── */
.dark-mode .oss-divider { border-top-color: #3a3a3a !important; }

/* ── OSS 无存储桶提示 ── */
.dark-mode .oss-no-bucket-hint { background: #3a3020 !important; border-color: #5a4a20 !important; }

/* ── Provider Badge ── */
.dark-mode .provider-badge { background: #1a2a3a !important; color: #4da3ff !important; }

/* ========== V5.11.0 Dark Mode — Screen Tab ========== */
.dark-mode .dm-screen-sep { border-left-color: #3a3a3a !important; }
.dark-mode .dm-screen-label { color: #999 !important; }
.dark-mode .dm-screen-field-label { color: #ccc !important; }
.dark-mode .dm-screen-stat { color: #888 !important; }
.dark-mode .dm-screen-empty { color: #666 !important; }
.dark-mode .dm-screen-history { border-top-color: #3a3a3a !important; }
.dark-mode .dm-screen-history-card { background: #2a2a2a !important; border-color: #3a3a3a !important; }
.dark-mode .dm-screen-history-card:hover { border-color: #4da3ff !important; }
.dark-mode .dm-screen-history-ts { color: #999 !important; }

/* ── Install Tab ── */
.dark-mode .dm-install-panel { background: #2a2a2a !important; }
.dark-mode .dm-install-title { color: #e0e0e0 !important; }
.dark-mode .dm-install-desc { color: #999 !important; }

/* ========== V5.11.0 Dark Mode — Plugin Tab ========== */
.dark-mode .dm-plugin-sidebar { border-right-color: #3a3a3a !important; }
.dark-mode .dm-plugin-item { background: transparent !important; border-color: transparent !important; }
.dark-mode .dm-plugin-item:hover { background: #333 !important; }
.dark-mode .dm-plugin-item-active { background: #1a3050 !important; border-color: #4da3ff !important; }
.dark-mode .dm-plugin-item-meta { color: #888 !important; }
.dark-mode .dm-plugin-lang-badge { background: #1a2a3a !important; color: #4da3ff !important; }
.dark-mode .dm-lang-other { background: #1a3a1a !important; color: #52c41a !important; }
.dark-mode .dm-plugin-desc { color: #999 !important; }
.dark-mode .dm-plugin-params { background: #333 !important; }
.dark-mode .dm-plugin-param-label { color: #ccc !important; }
.dark-mode .dm-plugin-result { border-color: #3a3a3a !important; }
.dark-mode .dm-plugin-result-header { background: #333 !important; border-bottom-color: #3a3a3a !important; }
.dark-mode .dm-plugin-error { background: #3a2020 !important; color: #ff8080 !important; }
.dark-mode .dm-plugin-placeholder { color: #666 !important; }
.dark-mode .dm-plugin-empty { color: #666 !important; }

/* ========== V5.11.0 Dark Mode — File Manager ========== */
.dark-mode .dm-disk-card { background: #2a2a2a !important; border-color: #3a3a3a !important; }
.dark-mode .dm-disk-card:hover { border-color: #4da3ff !important; }
.dark-mode .dm-disk-info { color: #888 !important; }
.dark-mode .dm-disk-progress-bg { background: #3a3a3a !important; }
.dark-mode .dm-upload-hint { color: #999 !important; }
.dark-mode .dm-upload-hint-sub { color: #666 !important; }
.dark-mode .dm-upload-queue-title { color: #e0e0e0 !important; }
.dark-mode .dm-chmod-octal { color: #999 !important; }
.dark-mode .dm-ctime-text { color: #999 !important; }
.dark-mode .dm-oss-no-bucket { background: #3a3020 !important; border-color: #5a4a20 !important; color: #d4a800 !important; }
.dark-mode .dm-oss-divider { border-top-color: #3a3a3a !important; }
.dark-mode .dm-oss-dir-badge { background: #1a2a3a !important; color: #4da3ff !important; border-color: #4da3ff !important; }
.dark-mode .dm-oss-dir-download { background: #3a3020 !important; color: #fa8c16 !important; border-color: #5a4a20 !important; }

/* ── Host Mgr Offline Hint ── */
.dark-mode .dm-offline-hint { color: #888 !important; }
.dark-mode .dm-offline-hint i.fa-moon { color: #555 !important; }

/* ── Shared Utility Classes ── */
.dark-mode .dm-empty-text { color: #666 !important; }
.dark-mode .dm-hint-text { color: #888 !important; }

/* ========== Plugin Mgmt Page ========== */
.dark-mode .dm-plgmgmt-lang-badge { background: #1a2a3a !important; color: #4da3ff !important; }
.dark-mode .dm-plgmgmt-time { color: #666 !important; }
.dark-mode .dm-plgmgmt-empty { color: #666 !important; }
.dark-mode .dm-plgmgmt-params-sep { border-top-color: #3a3a3a !important; }
.dark-mode .dm-plgmgmt-param-card { background: #333 !important; }
.dark-mode .dm-plgmgmt-editor-wrap { border-color: #3a3a3a !important; }
.dark-mode .dm-plgmgmt-preset { color: #4da3ff !important; }
.dark-mode .dm-plgmgmt-disabled { color: #555 !important; }

/* ========== User Mgmt Page ========== */
.dark-mode .dm-user-remark { color: #ccc !important; }
.dark-mode .dm-user-time { color: #999 !important; }
.dark-mode .dm-user-empty { color: #666 !important; }
.dark-mode .dm-user-row-selected { background: #1a3050 !important; }
.dark-mode .dm-user-section-title { color: #e0e0e0 !important; }
.dark-mode .dm-user-group-chip { background: #2a2a2a !important; border-color: #3a3a3a !important; }
.dark-mode .dm-user-group-chip-active { background: #1a3050 !important; border-color: #4da3ff !important; }
.dark-mode .dm-user-chip-count { color: #999 !important; }
.dark-mode .dm-user-divider { background: #3a3a3a !important; }
.dark-mode .dm-user-stat { color: #999 !important; }

/* ===== Batch Ops Page Dark Mode ===== */
.dark-mode .dm-batch-step-inactive { background: #333 !important; color: #e0e0e0 !important; }
.dark-mode .dm-batch-type-card { border-color: #3a3a3a !important; background: #2a2a2a !important; }
.dark-mode .dm-batch-type-active { border-color: #4da3ff !important; background: #1a3050 !important; }
.dark-mode .dm-batch-selected-count { color: #ccc !important; }
.dark-mode .dm-batch-table-wrap { border-color: #3a3a3a !important; }
.dark-mode .dm-batch-thead { background: #2a2a2a !important; color: #e0e0e0 !important; }
.dark-mode .dm-batch-row { border-bottom-color: #333 !important; }
.dark-mode .dm-batch-status-badge { background: #1a3020 !important; }
.dark-mode .dm-batch-hint-text { color: #999 !important; }
.dark-mode .dm-batch-warn-box { background: #2a2500 !important; border-color: #5a4a00 !important; color: #e0e0e0 !important; }
.dark-mode .dm-batch-plugin-detail { background: #2a2a2a !important; border-color: #3a3a3a !important; }
.dark-mode .dm-batch-confirm-panel { background: #2a2a2a !important; border-color: #3a3a3a !important; }
.dark-mode .dm-batch-code { background: #333 !important; color: #e0e0e0 !important; }
.dark-mode .dm-batch-progress-bg { background: #333 !important; }
.dark-mode .dm-batch-stat-label { color: #999 !important; }
.dark-mode .dm-batch-master-header { border-bottom-color: #3a3a3a !important; }
.dark-mode .dm-batch-empty { color: #666 !important; }
.dark-mode .dm-batch-list-item { border-bottom-color: #333 !important; }
.dark-mode .dm-batch-list-item-active { background: #1a3050 !important; }
.dark-mode .dm-batch-list-meta { color: #999 !important; }
.dark-mode .dm-batch-pagination { border-top-color: #3a3a3a !important; }
.dark-mode .dm-batch-divider { background: #3a3a3a !important; }
.dark-mode .dm-batch-detail-header { border-bottom-color: #3a3a3a !important; }
.dark-mode .dm-batch-output-pre { background: #333 !important; color: #e0e0e0 !important; }
.dark-mode .dm-batch-info-box { background: #1a3020 !important; border-color: #2a5a30 !important; color: #e0e0e0 !important; }
.dark-mode .dm-batch-schedule-table { border-color: #3a3a3a !important; }
.dark-mode .dm-batch-gallery-card { border-color: #3a3a3a !important; background: #2a2a2a !important; }
