/* ============================================================
   AIRapVideoGen 整站强制黑色系（主题级覆盖，无条件生效）
   覆盖系统 main.css 的浅色默认值与各页面残留白色块
   颜色统一放在同目录 theme.css，换主题只改那里的变量。
   ============================================================ */

/* ---- 全局基础 ---- */
html, body {
    background-color: var(--arv-bg) !important;
}
body.tm-body {
    background-color: var(--arv-bg) !important;
    color: var(--arv-text) !important;
}

/* ---- 顶部导航（系统 .tm-header）---- */
.tm-header,
header#mainHeader,
#mainHeader {
    background-color: var(--arv-header-bg) !important;
    border-bottom: 1px solid var(--arv-border) !important;
    color: var(--arv-text) !important;
    box-shadow: 0 10px 30px var(--arv-shadow) !important;
    backdrop-filter: blur(14px) !important;
}
.tm-header a:not(.arv-custom-header-action *),
#mainHeader a:not(.arv-custom-header-action *),
.tm-header .nav-link:not(.arv-custom-header-action *) {
    color: var(--arv-text-strong) !important;
}
.tm-nav-link-primary,
.tm-nav-link-active {
    color: var(--arv-text) !important;
}
.tm-nav-link-active {
    color: var(--arv-primary) !important;
}
.tm-btn-white,
.tm-btn-primary:not(.arv-custom-header-action *),
.tm_btn_simple:not(.arv-custom-header-action *),
.tm-search-submit,
.tm-search-cancel {
    background-color: var(--arv-surface-strong) !important;
    border-color: var(--arv-border) !important;
    color: var(--arv-text) !important;
}
.tm-btn-primary:not(.arv-custom-header-action *) {
    background-color: var(--arv-primary) !important;
    color: var(--arv-primary-ink) !important;
}
#mainHeader .arv-custom-header-action {
    display: contents;
}
.tm-select,
.tm-input,
.tm-dropdown,
.tm-mobile-border,
.tm-mobile-menu {
    background-color: var(--arv-surface) !important;
    border-color: var(--arv-border) !important;
    color: var(--arv-text) !important;
}
.tm-avatar-border {
    border-color: var(--arv-border-strong) !important;
}

/* ---- 底部（系统 .zf-layout-footer）---- */
.zf-layout-footer,
footer[role="contentinfo"] {
    background-color: var(--arv-bg-deep) !important;
    background-image: none !important;
    border-top: 1px solid var(--arv-border-soft) !important;
    color: var(--arv-text-muted) !important;
}
.zf-layout-footer a,
footer[role="contentinfo"] a {
    color: var(--arv-text-strong) !important;
}
.zf-layout-footer *,
footer[role="contentinfo"] * {
    border-color: var(--arv-border-soft) !important;
}

/* ---- 常见 tailwind 白/浅色类兜底覆盖 ---- */
body :where(.bg-white, .bg-gray-50, .bg-gray-100, .bg-slate-50, .bg-zinc-50, .bg-neutral-50, .bg-[#FFFFFF], .bg-[#fff], .bg-[white]):not(.arv-custom-header-action *) {
    background-color: var(--arv-surface) !important;
}
body :where(.bg-gray-200, .bg-gray-300, .bg-slate-200, .bg-neutral-200):not(.arv-custom-header-action *) {
    background-color: var(--arv-surface-strong) !important;
}
body :where([class*="bg-blue-50"], [class*="bg-indigo-50"], [class*="bg-purple-50"], [class*="bg-pink-50"], [class*="bg-yellow-50"]):not(.arv-custom-header-action *) {
    background-color: rgba(52, 78, 118, 0.24) !important;
}

/* 文字色 */
body :where(.text-black, .text-gray-900, .text-gray-800, .text-gray-700, .text-slate-900, .text-slate-800, .text-neutral-900):not(.arv-custom-header-action *) {
    color: var(--arv-text) !important;
}
body :where(.text-gray-600, .text-gray-500, .text-slate-600, .text-slate-500):not(.arv-custom-header-action *) {
    color: var(--arv-text-muted) !important;
}
body :where(.text-gray-400, .text-slate-400):not(.arv-custom-header-action *) {
    color: var(--arv-text-dim) !important;
}
body :where(.text-blue-600, .text-blue-500, .text-indigo-600):not(.arv-custom-header-action *) {
    color: var(--arv-info) !important;
}

/* Brand mapping for legacy blue/indigo utility classes. Semantic green/red states stay unchanged. */
body :where([class~="bg-blue-600"], [class~="bg-indigo-600"]):not(.arv-custom-header-action *) {
    background-color: var(--arv-info-strong) !important;
    border-color: var(--arv-info-strong) !important;
    color: var(--arv-text) !important;
}
body :where([class~="bg-blue-50"], [class~="bg-indigo-50"]):not(.arv-custom-header-action *) {
    background-color: var(--arv-info-soft) !important;
}
body :where([class~="text-blue-400"], [class~="text-blue-500"], [class~="text-blue-600"], [class~="text-indigo-500"], [class~="text-indigo-600"]):not(.arv-custom-header-action *) {
    color: var(--arv-info-strong) !important;
}
body :where([class~="border-blue-100"], [class~="border-blue-200"], [class~="border-indigo-100"], [class~="border-indigo-200"]):not(.arv-custom-header-action *) {
    border-color: var(--arv-info-border) !important;
}
html.dark body :where([class~="bg-blue-600"], [class~="bg-indigo-600"]):not(.arv-custom-header-action *) {
    background-color: var(--arv-info) !important;
    border-color: var(--arv-info) !important;
}
html.dark body :where([class~="bg-blue-50"], [class~="bg-indigo-50"]):not(.arv-custom-header-action *) {
    background-color: rgba(138, 108, 255, 0.14) !important;
}
html.dark body :where([class~="text-blue-400"], [class~="text-blue-500"], [class~="text-blue-600"], [class~="text-indigo-500"], [class~="text-indigo-600"]):not(.arv-custom-header-action *) {
    color: var(--arv-info-light) !important;
}
html.dark body :where([class~="border-blue-100"], [class~="border-blue-200"], [class~="border-indigo-100"], [class~="border-indigo-200"]):not(.arv-custom-header-action *) {
    border-color: rgba(161, 139, 255, 0.34) !important;
}

/* 边框 */
body :where(.border-gray-100, .border-gray-200, .border-gray-300, .border-slate-100, .border-slate-200, .border-slate-300, .border-blue-100, .border-blue-200):not(.arv-custom-header-action *) {
    border-color: var(--arv-border) !important;
}

/* 阴影减淡（深色下无需重投影） */
body :where(.shadow-sm, .shadow, .shadow-md, .shadow-lg, .shadow-xl):not(.arv-custom-header-action *) {
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.40) !important;
}

/* 白色渐变块（imagens 遗留样式） */
body :where([class*="bg-gradient-to-r"][class*="from-white"], [class*="bg-gradient-to-br"][class*="from-white"], [class*="bg-gradient-to-r"][class*="from-gray-50"]):not(.arv-custom-header-action *) {
    background-image: linear-gradient(120deg, var(--arv-bg-deep), var(--arv-surface-soft)) !important;
}

/* 内联白色背景容器（imagens 工作台遗留：style="background:#fff" 等） */
body :where([style*="background:#fff"], [style*="background: #fff"], [style*="background-color:#fff"], [style*="background-color: #fff"], [style*="background:#ffffff"], [style*="background: #ffffff"]):not(.arv-custom-header-action *) {
    background-color: var(--arv-surface) !important;
    color: var(--arv-text) !important;
}
body :where([style*="color:#000"], [style*="color: #000"], [style*="color:black"], [style*="color: black"]):not(.arv-custom-header-action *) {
    color: var(--arv-text) !important;
}
/* 半透明白（生成按钮等） */
body :where(.bg-white\/95, .bg-white\/90, .bg-white\/80, [class*="bg-white/9"], [class*="bg-white/8"]):not(.arv-custom-header-action *) {
    background-color: var(--arv-overlay-panel) !important;
    border-color: var(--arv-border) !important;
}
body :where(.text-slate-900, .text-slate-800, .text-slate-700):not(.arv-custom-header-action *) {
    color: var(--arv-text) !important;
}

/* ---- 输入框 / 通用表单 ---- */
body :where(input[type="text"], input[type="search"], input[type="email"], textarea, select) {
    background-color: var(--arv-control) !important;
    border-color: var(--arv-border) !important;
    color: var(--arv-text) !important;
}
body :where(input, textarea, select)::placeholder {
    color: var(--arv-text-placeholder) !important;
}

html.dark body .zf-dark-text-gray-600,
html.dark body .zf-dark-text-gray-500,
html.dark body .zf-dark-text-gray-400,
html.dark body .zf-dark-text-slate-600,
html.dark body .zf-dark-text-slate-500,
html.dark body .zf-dark-text-slate-400 {
    color: var(--arv-text-muted) !important;
}
html.dark body .zf-dark-text-gray-700,
html.dark body .zf-dark-text-slate-700 {
    color: var(--arv-text-strong) !important;
}
html[data-theme="dark"] body .zf-dark-text-gray-600,
html[data-theme="dark"] body .zf-dark-text-gray-500,
html[data-theme="dark"] body .zf-dark-text-gray-400,
html[data-theme="dark"] body .zf-dark-text-slate-600,
html[data-theme="dark"] body .zf-dark-text-slate-500,
html[data-theme="dark"] body .zf-dark-text-slate-400 {
    color: var(--arv-text-muted) !important;
}
html[data-theme="dark"] body .zf-dark-text-gray-700,
html[data-theme="dark"] body .zf-dark-text-slate-700 {
    color: var(--arv-text-strong) !important;
}

/* ponytail: keep framework error dialogs readable on the dark theme. */
html.dark .layui-layer,
html[data-theme="dark"] .layui-layer {
    background: var(--arv-surface) !important;
    border: 1px solid var(--arv-border-strong) !important;
    color: var(--arv-text) !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .55) !important;
}
html.dark .layui-layer-title,
html[data-theme="dark"] .layui-layer-title {
    background: var(--arv-surface-strong) !important;
    border-bottom-color: var(--arv-border) !important;
    color: var(--arv-text-strong) !important;
}
html.dark .layui-layer-content,
html[data-theme="dark"] .layui-layer-content {
    background: transparent !important;
    color: var(--arv-text) !important;
    word-break: break-word;
}
html.dark .layui-layer-btn a,
html[data-theme="dark"] .layui-layer-btn a {
    border-color: var(--arv-border-strong) !important;
    background: var(--arv-surface-strong) !important;
    color: var(--arv-text-strong) !important;
}
html.dark .layui-layer-btn .layui-layer-btn0,
html[data-theme="dark"] .layui-layer-btn .layui-layer-btn0 {
    border-color: var(--arv-primary) !important;
    background: var(--arv-primary) !important;
    color: var(--arv-primary-ink) !important;
}
html.dark .layui-layer-shade,
html[data-theme="dark"] .layui-layer-shade {
    background-color: rgba(0, 0, 0, .76) !important;
}

/* ---- 用户中心 / 其它系统页残留白面板 ---- */
body :where(.panel, .layui-card, .layui-form-item, .layui-table, table) {
    background-color: var(--arv-surface) !important;
    color: var(--arv-text) !important;
}
body :where(.layui-table th, .layui-table td, .layui-table-header) {
    background-color: var(--arv-surface-strong) !important;
    color: var(--arv-text-strong) !important;
}

/* ---- 主题切换按钮配色 ---- */
.theme-toggle-btn {
    background: var(--arv-surface-strong) !important;
    border: 1px solid var(--arv-border) !important;
    color: var(--arv-primary) !important;
}

/* ponytail: keep the shared sign-in control readable when the site primary color is white. */
#mainHeader #zf-header-auth-desktop > a[aria-label] {
    background-color: var(--arv-text) !important;
    border-color: transparent !important;
    color: var(--arv-bg) !important;
}
#mainHeader #zf-header-auth-desktop > a[aria-label]:hover {
    background-color: var(--arv-text-strong) !important;
    color: var(--arv-bg) !important;
}
#mainHeader #zf-header-auth-desktop > a[aria-label] svg {
    color: inherit !important;
}

@media (max-width: 1023.98px) {
    #mainHeader #zf-header-auth-mobile > a[aria-label] {
        background-color: var(--arv-text) !important;
        border-color: transparent !important;
        color: var(--arv-bg) !important;
    }
}

/* 移动端菜单面板 */
#mobile-menu-content,
.tm-mobile-menu {
    background-color: var(--arv-bg-section) !important;
    color: var(--arv-text) !important;
}

/* 系统 header 用 ID 选择器强制显示了搜索按钮，覆盖 Tailwind 的 hidden；
   移动端隐藏顶部 Generate CTA，避免与 logo / 用户入口挤在一起 */
@media (max-width: 1023.98px) {
    #mainHeader #searchToggle.hidden {
        display: none !important;
    }
    #mainHeader .zf-layout-header__actions > a[href="/ai-rap-video-generator"] {
        display: none !important;
    }
    #mainHeader .zf-header-logo-text {
        display: none !important;
    }
}

/* 搜索弹窗 */
#searchModal .tm-dropdown,
#searchModal .tm-input {
    background-color: var(--arv-surface) !important;
    color: var(--arv-text) !important;
}
