@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
    /* 极致清爽简约高级 B 端调色系统（浅色模式：Linear/Stripe 皇室科技蓝与冷灰白） */
    --primary: #2563eb;
    --primary-light: rgba(37, 99, 235, 0.08);
    --primary-hover: #1d4ed8;
    --primary-active: #1e40af;
    --primary-glow: rgba(37, 99, 235, 0.22);
    --primary-gradient: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);

    --radius-lg: 18px;
    --radius-md: 12px;
    --radius-sm: 8px;
    --shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.06);
    --shadow-md: 0 4px 14px rgba(15, 23, 42, 0.08);
    --border-hover: rgba(37, 99, 235, 0.4);

    /* 纯净高级冷灰白底色，温润通透，具有呼吸感 */
    --bg-body: #f8fafc;
    --bg-sidebar: rgba(255, 255, 255, 0.72);
    --bg-card: rgba(255, 255, 255, 0.88);
    --bg-card-hover: rgba(255, 255, 255, 0.98);
    --bg-card-subtle: rgba(248, 250, 252, 0.85);

    --text-main: #0f172a;
    --text-sub: #475569;
    --text-muted: #64748b;

    /* 极其细腻干净的 1px 微透明边界与液态高光 */
    --border: rgba(226, 232, 240, 0.85);
    --border-light: rgba(255, 255, 255, 0.95);
    --border-subtle: rgba(15, 23, 42, 0.05);
    --specular-highlight: inset 0 1px 0 0 rgba(255, 255, 255, 0.85);

    /* 柔和微弥散高级阴影（Ambient + Key Shadow） */
    --shadow-card: 0 1px 3px 0 rgba(15, 23, 42, 0.03), 0 8px 24px -4px rgba(15, 23, 42, 0.05);
    --shadow-card-hover: 0 4px 6px -1px rgba(15, 23, 42, 0.04), 0 14px 32px -3px rgba(15, 23, 42, 0.08);
    --shadow-subtle: 0 1px 2px 0 rgba(15, 23, 42, 0.04);
    --shadow-glass: 0 10px 30px -5px rgba(15, 23, 42, 0.05), 0 2px 6px -1px rgba(15, 23, 42, 0.02);

    --glass-blur: blur(24px) saturate(180%);
    --glass-blur-sm: blur(14px) saturate(160%);

    --radius-l: 18px;
    --radius-m: 11px;
    --radius-s: 7px;

    /* 统一物理动效缓动 */
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

    /* 克制内敛的语义色 */
    --success: #10b981;
    --success-bg: rgba(16, 185, 129, 0.08);
    --warning: #f59e0b;
    --warning-bg: rgba(245, 158, 11, 0.08);
    --danger: #ef4444;
    --danger-bg: rgba(239, 68, 68, 0.08);
}

html[data-theme="dark"] {
    /* 极致清爽简约高级 B 端调色系统（深色模式：深邃星空暗夜蓝灰与科技荧光蓝） */
    --primary: #38bdf8;
    --primary-light: rgba(56, 189, 248, 0.12);
    --primary-hover: #60a5fa;
    --primary-active: #0284c7;
    --primary-glow: rgba(56, 189, 248, 0.28);
    --primary-gradient: linear-gradient(135deg, #38bdf8 0%, #0284c7 100%);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.4);
    --border-hover: rgba(56, 189, 248, 0.5);

    --bg-body: #0b0f19;
    --bg-sidebar: rgba(13, 18, 30, 0.75);
    --bg-card: rgba(18, 25, 41, 0.78);
    --bg-card-hover: rgba(26, 36, 58, 0.88);
    --bg-card-subtle: rgba(255, 255, 255, 0.03);

    --text-main: #f1f5f9;
    --text-sub: #94a3b8;
    --text-muted: #64748b;

    --border: rgba(255, 255, 255, 0.08);
    --border-light: rgba(255, 255, 255, 0.14);
    --border-subtle: rgba(255, 255, 255, 0.04);
    --specular-highlight: inset 0 1px 0 0 rgba(255, 255, 255, 0.08);

    --shadow-card: 0 4px 24px -2px rgba(0, 0, 0, 0.45), 0 1px 3px 0 rgba(0, 0, 0, 0.3);
    --shadow-card-hover: 0 10px 36px -4px rgba(0, 0, 0, 0.6), 0 2px 6px 0 rgba(0, 0, 0, 0.4);
    --shadow-subtle: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
    --shadow-glass: 0 16px 36px -4px rgba(0, 0, 0, 0.55), 0 4px 12px -2px rgba(0, 0, 0, 0.35);

    --glass-blur: blur(24px) saturate(180%);
    --glass-blur-sm: blur(14px) saturate(160%);

    --success: #34d399;
    --success-bg: rgba(52, 211, 153, 0.12);
    --warning: #fbbf24;
    --warning-bg: rgba(251, 191, 36, 0.12);
    --danger: #f87171;
    --danger-bg: rgba(248, 113, 113, 0.12);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background-color: var(--bg-body);
    background-image: 
        radial-gradient(circle at 15% 15%, rgba(37, 99, 235, 0.035) 0px, transparent 45%),
        radial-gradient(circle at 85% 85%, rgba(14, 165, 233, 0.03) 0px, transparent 50%);
    color: var(--text-main);
    height: 100vh;
    overflow: hidden;
    position: relative;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html[data-theme="dark"] body {
    background-color: var(--bg-body);
    background-image: 
        radial-gradient(circle at 10% 15%, rgba(37, 99, 235, 0.12) 0px, transparent 48%),
        radial-gradient(circle at 90% 20%, rgba(99, 102, 241, 0.10) 0px, transparent 42%),
        radial-gradient(circle at 40% 90%, rgba(56, 189, 248, 0.08) 0px, transparent 50%),
        radial-gradient(circle at 92% 85%, rgba(139, 92, 246, 0.06) 0px, transparent 45%);
}



/* iOS 主屏幕全屏模式安全区适配（避免刘海/灵动岛遮挡）。
   管理台不能把安全区加在 app-container 外层：这会在状态栏下留下另一种底色，
   也会让 sticky 顶栏先随页面上移一段距离。管理台的安全区改由顶栏/侧栏自身处理。 */
html.is-standalone-ios .login-wrapper {
    padding-top: calc(constant(safe-area-inset-top) + 10px);
    padding-top: calc(env(safe-area-inset-top) + 10px);
    padding-bottom: constant(safe-area-inset-bottom);
    padding-bottom: env(safe-area-inset-bottom);
}

html.is-standalone-ios .toast-container {
    top: calc(constant(safe-area-inset-top) + 24px);
    top: calc(env(safe-area-inset-top) + 24px);
}

.theme-toggle-btn {
    width: auto;
    padding: 0 12px;
    gap: 8px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    transition: all 0.2s;
}

#theme-toggle-text {
    font-size: 0.9rem;
    font-weight: 500;
    color: #6b7280;
}

html:not([data-theme="dark"]) #theme-toggle-text {
    color: #6b7280;
}

.theme-toggle-btn:hover {
    border-color: rgba(129, 140, 248, 0.45);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
    transform: translateY(-1px);
}

/* 登录页面专用样式 */
.login-wrapper {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(at 0% 0%, rgba(220, 230, 245, 0.5) 0, transparent 60%),
                radial-gradient(at 100% 100%, rgba(210, 225, 245, 0.4) 0, transparent 60%),
                var(--bg-body);
    position: relative;
}

html[data-theme="dark"] .login-wrapper {
    background: radial-gradient(at 0% 0%, rgba(18, 28, 48, 0.6) 0, transparent 60%),
                radial-gradient(at 100% 100%, rgba(12, 20, 35, 0.7) 0, transparent 60%),
                var(--bg-body);
}

.login-card {
    background: var(--bg-card-elevated);
    backdrop-filter: blur(32px) saturate(180%);
    -webkit-backdrop-filter: blur(32px) saturate(180%);
    width: 90%;
    max-width: 400px;
    padding: 40px;
    border-radius: 24px;
    border: 1px solid var(--border-highlight);
    box-shadow: var(--shadow-card);
    text-align: center;
}

html[data-theme="dark"] .login-card {
    background: rgba(18, 26, 42, 0.75);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.login-logo {
    font-size: 3.5rem;
    margin-bottom: 10px;
    background: linear-gradient(135deg, #1d1d1f 0%, #434344 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block;
}

html[data-theme="dark"] .login-logo {
    background: linear-gradient(135deg, #f0f6fc 0%, #94a3b8 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.login-title {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 5px;
    color: #333;
}

html[data-theme="dark"] .login-title {
    color: rgba(229, 231, 235, 0.95);
}

.login-subtitle {
    color: #888;
    font-size: 0.9rem;
    margin-bottom: 30px;
}

html[data-theme="dark"] .login-subtitle {
    color: rgba(229, 231, 235, 0.60);
}

.login-form-group {
    margin-bottom: 20px;
    text-align: left;
}

.login-label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    font-size: 0.9rem;
    color: #555;
}

html[data-theme="dark"] .login-label {
    color: rgba(229, 231, 235, 0.85);
}

.login-input {
    width: 100%;
    padding: 14px;
    border: 2px solid #eee;
    border-radius: 10px;
    background: #f9f9f9;
    font-size: 1rem;
    transition: 0.3s;
    color: #333;
}

html[data-theme="dark"] .login-input {
    border-color: rgba(148, 163, 184, 0.25);
    background: rgba(15, 23, 42, 0.55);
    color: rgba(229, 231, 235, 0.95);
}

.login-input:focus {
    border-color: var(--primary);
    background: #fff;
    outline: none;
}

html[data-theme="dark"] .login-input:focus {
    background: rgba(15, 23, 42, 0.75);
}

.login-btn {
    width: 100%;
    padding: 13px 20px;
    background: linear-gradient(180deg, #3b82f6 0%, #2563eb 100%);
    color: white;
    border: 1px solid rgba(29, 78, 216, 0.3);
    border-radius: var(--radius-m);
    font-size: 0.95rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 4px 14px -2px rgba(37, 99, 235, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.25);
    transition: all 0.2s var(--ease-out);
}

.login-btn:hover {
    transform: translateY(-1.5px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08), 0 6px 20px -2px rgba(37, 99, 235, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.login-btn:active {
    transform: scale(0.97);
}

html[data-theme="dark"] .login-btn {
    background: linear-gradient(180deg, #38bdf8 0%, #0284c7 100%);
    border-color: rgba(56, 189, 248, 0.4);
    color: #030712;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 4px 16px -2px rgba(56, 189, 248, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

/* 主界面布局 */
.app-container {
    display: flex;
    height: 100vh;
    width: 100vw;
    position: relative;
    z-index: 1;
    background: transparent;
}

.sidebar {
    width: 250px;
    background: var(--bg-sidebar);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    display: flex;
    flex-direction: column;
    border-right: 1px solid var(--border);
    z-index: 50;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

html:not([data-theme="dark"]) .sidebar {
    background: rgba(255, 255, 255, 0.72) !important;
    border-right: 1px solid rgba(226, 232, 240, 0.8) !important;
    box-shadow: 4px 0 24px -2px rgba(15, 23, 42, 0.02) !important;
}

html[data-theme="dark"] .sidebar {
    background: rgba(13, 18, 30, 0.78) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 4px 0 30px -2px rgba(0, 0, 0, 0.45) !important;
}

.brand {
    padding: 30px 24px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.brand-icon {
    width: 32px;
    height: 32px;
    background: linear-gradient(135deg, var(--primary), var(--primary));
    border-radius: 10px;
    color: white;
    font-weight: 800;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(99, 102, 241, 0.3);
}

.brand-text {
    font-size: 1.22rem;
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: -0.04em;
    line-height: 1.16;
    padding-bottom: 2px;
    background: linear-gradient(135deg, #0f172a, #334155 45%, #2563eb 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-rendering: geometricPrecision;
}

.brand-version {
    margin-top: 4px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-sub);
    letter-spacing: 0.02em;
}

html[data-theme="dark"] .brand-text {
    background: linear-gradient(135deg, #f8fafc, #cbd5e1 48%, #93c5fd 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

#sidebar-nav {
    flex: 1;
    overflow-y: auto;
    padding: 10px 12px;
    scrollbar-width: none;
}

#sidebar-nav::-webkit-scrollbar {
    display: none;
}

/* 分类分组（可折叠） */
.nav-category-group {
    margin-top: 14px;
}

.nav-category-group:first-child {
    margin-top: 4px;
}

.nav-category-btn {
    width: 100%;
    border: 1px solid transparent;
    outline: none;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 8px 6px 10px;
    margin: 0;
    cursor: pointer;
    border-radius: 8px;
    color: var(--text-sub);
    transition: background-color 0.18s ease, color 0.18s ease;
}

.nav-category-btn:hover {
    background: rgba(15, 23, 42, 0.04);
    color: var(--text-main);
}

html[data-theme="dark"] .nav-category-btn:hover {
    background: rgba(255, 255, 255, 0.05);
    color: #f8fafc;
}

.nav-category-btn:focus-visible {
    box-shadow: 0 0 0 2px var(--primary-light);
}

.nav-category-title {
    font-size: 0.78rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    color: #64748b;
    line-height: 1.2;
}

html[data-theme="dark"] .nav-category-title {
    color: #94a3b8;
}

.nav-category-btn:hover .nav-category-title {
    color: #0f172a;
}

html[data-theme="dark"] .nav-category-btn:hover .nav-category-title {
    color: #f8fafc;
}

.nav-category-arrow {
    width: 16px;
    height: 16px;
    margin-left: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    flex-shrink: 0;
}

.nav-category-arrow .nav-category-chevron {
    width: 13px;
    height: 13px;
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1), color 0.18s ease;
    transform-origin: center center;
    transform: rotate(0deg);
}

.nav-category-btn:hover .nav-category-arrow,
.nav-category-btn:hover .nav-category-chevron {
    color: var(--primary);
}

.nav-category-group.collapsed .nav-category-arrow .nav-category-chevron {
    transform: rotate(-90deg);
}

.nav-category-body {
    margin-top: 3px;
}

.nav-category-group.collapsed .nav-category-body {
    display: none;
}

.nav-category-group.collapsed.search-expanded .nav-category-body {
    display: block;
}

.nav-category-group.collapsed.search-expanded .nav-category-arrow .nav-category-chevron {
    transform: rotate(0deg);
}

/* 菜单项 */
.nav-item {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 9px 12px;
    margin-bottom: 3px;
    border-radius: var(--radius-m);
    cursor: pointer;
    transition: all 0.18s var(--ease-out);
    color: #475569;
    font-weight: 500;
    font-size: 0.90rem;
    border: 1px solid transparent;
    user-select: none;
}

/* 统一导航图标的占位宽度，避免不同 emoji 的字形宽度导致菜单文字错位。 */
.nav-icon-emoji {
    display: inline-flex;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    line-height: 1;
    text-align: center;
    transition: transform 0.2s var(--ease-out);
}

/* 系统工具导航项与普通项保持一致字号 */
.system-tool-nav-item,
.system-tool-nav-item .nav-text,
.system-tool-nav-item .nav-icon-emoji {
    font-size: 0.84rem;
    line-height: 1.35;
}

html[data-theme="dark"] .nav-item {
    color: #94a3b8;
}

html:not([data-theme="dark"]) .nav-item:hover {
    background-color: rgba(15, 23, 42, 0.045);
    color: #0f172a;
    transform: translateX(2px);
}

html[data-theme="dark"] .nav-item:hover {
    background-color: rgba(255, 255, 255, 0.06);
    color: #f8fafc;
    transform: translateX(2px);
}

.nav-item:hover .nav-icon-emoji {
    transform: scale(1.12);
}

.nav-item:active {
    transform: scale(0.98);
}

/* 选中状态（药丸胶囊微发光） */
.nav-item.active {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.10) 0%, rgba(59, 130, 246, 0.04) 100%) !important;
    border-color: rgba(37, 99, 235, 0.20) !important;
    color: #2563eb !important;
    font-weight: 650 !important;
    box-shadow: 0 2px 8px -1px rgba(37, 99, 235, 0.10), inset 0 1px 0 0 rgba(255, 255, 255, 0.8) !important;
}

html[data-theme="dark"] .nav-item.active {
    background: linear-gradient(135deg, rgba(56, 189, 248, 0.16) 0%, rgba(37, 99, 235, 0.08) 100%) !important;
    border-color: rgba(56, 189, 248, 0.28) !important;
    color: #38bdf8 !important;
    font-weight: 650 !important;
    box-shadow: 0 2px 12px -2px rgba(56, 189, 248, 0.16), inset 0 1px 0 0 rgba(255, 255, 255, 0.10) !important;
}

.nav-text {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 底部栏 */
.sidebar-footer {
    padding: 16px;
    border-top: 1px solid var(--border);
    background: var(--bg-sidebar);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sidebar-footer .theme-toggle-btn {
    width: 100%;
    padding: 10px;
    border: 1px solid #e5e7eb;
    background: var(--bg-card);
    color: #6b7280;
    border-radius: var(--radius-m);
    justify-content: center;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    gap: 8px;
    display: flex;
    align-items: center;
}

html[data-theme="dark"] .sidebar-footer .theme-toggle-btn {
    color: rgba(229, 231, 235, 0.75);
    border-color: rgba(148, 163, 184, 0.18);
}

.sidebar-footer .theme-toggle-btn:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
    color: #4b5563;
}

html[data-theme="dark"] .sidebar-footer .theme-toggle-btn:hover {
    background: rgba(148, 163, 184, 0.15);
    border-color: rgba(148, 163, 184, 0.25);
    color: rgba(229, 231, 235, 0.85);
}

.sidebar-footer #theme-toggle-text {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
}

.logout-btn {
    width: 100%;
    padding: 10px;
    border: 1px solid #e5e7eb;
    background: var(--bg-card);
    color: #6b7280;
    border-radius: var(--radius-m);
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 0.9rem;
    font-weight: 500;
}

.logout-btn:hover {
    background: #fef2f2;
    border-color: #fee2e2;
    color: #ef4444;
}

html[data-theme="dark"] .logout-btn {
    color: rgba(229, 231, 235, 0.75);
    border-color: rgba(148, 163, 184, 0.18);
}

html[data-theme="dark"] .logout-btn:hover {
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(239, 68, 68, 0.25);
    color: #f87171;
}

/* 内容区 */
.main-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    background: transparent;
    position: relative;
    /* 作为 flex 子项时允许小于内容本身的固有宽度，避免宽榜单把整页撑出视口。 */
    min-width: 0;
    width: 100%;
    min-height: 0;
}

.top-bar {
    height: 64px;
    padding: 0 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--bg-sidebar);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    position: sticky;
    top: 0;
    z-index: 40;
    border-bottom: 1px solid var(--border);
    gap: 16px;
    transition: all 0.2s var(--ease-out);
}

html:not([data-theme="dark"]) .top-bar {
    background: rgba(255, 255, 255, 0.72) !important;
    border-bottom: 1px solid rgba(226, 232, 240, 0.8) !important;
    box-shadow: 0 4px 20px -2px rgba(15, 23, 42, 0.03) !important;
}

html[data-theme="dark"] .top-bar {
    background: rgba(13, 18, 30, 0.78) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 4px 24px -2px rgba(0, 0, 0, 0.45) !important;
}

.page-title {
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--text-main);
    flex: 1;
}

.top-bar-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* 顶栏全局搜索框（微透质感与呼吸聚焦环） */
.search-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.search-icon {
    position: absolute;
    left: 12px;
    color: #94a3b8;
    pointer-events: none;
    transition: color 0.2s ease;
}

.search-input {
    width: 270px;
    height: 38px;
    padding: 0 14px 0 36px;
    border: 1px solid rgba(203, 213, 225, 0.8);
    border-radius: var(--radius-m);
    font-size: 0.88rem;
    background: rgba(248, 250, 252, 0.8);
    backdrop-filter: blur(10px);
    transition: all 0.22s var(--ease-out);
    color: var(--text-main);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03), inset 0 1px 1px rgba(0, 0, 0, 0.02);
}

.search-input:focus {
    background: #ffffff;
    border-color: #3b82f6;
    outline: none;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.16), 0 2px 8px rgba(37, 99, 235, 0.08);
    width: 320px;
}

.search-wrapper:focus-within .search-icon {
    color: var(--primary);
}

html[data-theme="dark"] .search-input {
    background: rgba(24, 32, 50, 0.6);
    border-color: rgba(255, 255, 255, 0.1);
    color: #f1f5f9;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 1px 1px rgba(255, 255, 255, 0.03);
}

html[data-theme="dark"] .search-input:focus {
    background: rgba(18, 25, 41, 0.95);
    border-color: #38bdf8;
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.2), 0 4px 14px rgba(0, 0, 0, 0.4);
}

html:not([data-theme="dark"]) .search-input {
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    color: #1f2937;
}

.search-input:focus {
    background: var(--bg-card);
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-light);
    width: 320px;
}

.search-input::placeholder {
    color: #9ca3af;
}

.config-search-results {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 1200;
    width: min(420px, calc(100vw - 32px));
    max-height: 430px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16);
    backdrop-filter: blur(12px);
}

.config-search-results.hidden {
    display: none;
}

.config-search-results-head {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    color: var(--text-sub);
    font-size: 0.8rem;
    font-weight: 700;
}

.config-search-results-list {
    max-height: 368px;
    overflow-y: auto;
    padding: 6px;
}

.config-search-result-item {
    width: 100%;
    display: block;
    border: 0;
    border-radius: 10px;
    padding: 10px 12px;
    background: transparent;
    color: var(--text-main);
    text-align: left;
    cursor: pointer;
}

.config-search-result-item:hover,
.config-search-result-item.is-active {
    background: rgba(99, 102, 241, 0.10);
}

.config-search-result-title {
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.35;
}

.config-search-result-meta {
    margin-top: 5px;
    color: var(--text-sub);
    font-size: 0.78rem;
    line-height: 1.35;
}

.config-search-empty {
    padding: 14px 16px;
    color: var(--text-sub);
    font-size: 0.88rem;
    font-weight: 700;
}

html[data-theme="dark"] .config-search-results {
    border-color: rgba(148, 163, 184, 0.18);
    background: rgba(15, 23, 42, 0.98);
    box-shadow: 0 22px 48px rgba(2, 6, 23, 0.45);
}

html[data-theme="dark"] .config-search-result-item:hover,
html[data-theme="dark"] .config-search-result-item.is-active {
    background: rgba(129, 140, 248, 0.18);
}

.save-btn {
    background: linear-gradient(180deg, #3b82f6 0%, #2563eb 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(29, 78, 216, 0.35) !important;
    padding: 8px 18px !important;
    border-radius: var(--radius-m) !important;
    font-weight: 650 !important;
    font-size: 0.88rem !important;
    letter-spacing: 0.01em !important;
    cursor: pointer !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.06), 0 4px 14px -2px rgba(37, 99, 235, 0.38), inset 0 1px 0 0 rgba(255, 255, 255, 0.25) !important;
    transition: all 0.2s var(--ease-out) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    user-select: none !important;
}

.save-btn:hover {
    transform: translateY(-1.5px) !important;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08), 0 6px 20px -2px rgba(37, 99, 235, 0.5), inset 0 1px 0 0 rgba(255, 255, 255, 0.35) !important;
}

.save-btn:active {
    transform: scale(0.97) !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1), 0 2px 8px -2px rgba(37, 99, 235, 0.3) !important;
}

.save-btn:disabled {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
    filter: grayscale(20%) !important;
}


.content-area {
    flex: 1;
    min-width: 0;
    overflow-y: auto;
    padding: 32px;
    max-width: 1120px;
    margin: 0 auto;
    width: 100%;
    min-height: 0;
}

.content-area.dashboard-full-width {
    max-width: none;
    margin: 0;
}

.content-area.log-viewer-active {
    overflow: hidden;
}

.content-area.log-viewer-active #env-form,
.content-area.log-viewer-active #env-sections {
    height: 100%;
    min-height: 0;
}

.content-area.log-viewer-active #log-viewer-section.config-group.active {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    margin-bottom: 0;
    overflow: hidden;
}

.content-area.log-viewer-active .log-button-bar {
    flex-shrink: 0;
}

.content-area.log-viewer-active .log-viewer-container {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.content-area.log-viewer-active .log-timeline,
.content-area.log-viewer-active .log-content {
    flex: 1;
    min-height: 0;
    max-height: none;
}

/* 配置卡片 */
/* 配置卡片（液态玻璃与精致弥散阴影） */
.config-group {
    background: var(--bg-card);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border);
    border-radius: var(--radius-l);
    padding: 32px;
    box-shadow: var(--shadow-card), var(--specular-highlight);
    margin-bottom: 24px;
    display: none;
    animation: slideUp 0.28s var(--ease-out);
    transition: box-shadow 0.25s var(--ease-out), border-color 0.25s var(--ease-out);
}

.config-group.active {
    display: block;
}

.config-group-structured {
    padding: 28px;
}

.config-subgroup-stack {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.config-subgroup {
    position: relative;
    border-radius: 16px;
    padding: 20px 22px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 2px 8px -2px rgba(15, 23, 42, 0.03), inset 0 1px 0 rgba(255, 255, 255, 0.95);
    overflow: hidden;
    transition: transform 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out), border-color 0.2s var(--ease-out);
}

.config-subgroup:hover {
    box-shadow: 0 6px 16px -2px rgba(15, 23, 42, 0.05), inset 0 1px 0 rgba(255, 255, 255, 1);
    border-color: rgba(203, 213, 225, 0.9);
}

.config-subgroup::before {
    display: none;
}

html[data-theme="dark"] .config-subgroup {
    background: rgba(24, 32, 50, 0.6) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

html[data-theme="dark"] .config-subgroup:hover {
    border-color: rgba(255, 255, 255, 0.15) !important;
    box-shadow: 0 8px 24px -2px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.09) !important;
}

.config-subgroup-head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.config-subgroup-toggle {
    margin-left: auto;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid rgba(203, 213, 225, 0.8);
    background: rgba(241, 245, 249, 0.85);
    color: #475569;
    border-radius: 999px;
    padding: 6px 13px;
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
    transition: all 0.2s var(--ease-out);
    user-select: none;
}

.config-subgroup-toggle:hover {
    border-color: rgba(37, 99, 235, 0.3);
    background: rgba(37, 99, 235, 0.08);
    color: #2563eb;
    transform: translateY(-1px);
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.12);
}

.config-subgroup-toggle:active {
    transform: scale(0.96);
}

.config-subgroup-toggle:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.25);
}

.config-subgroup-toggle-icon {
    display: inline-block;
    font-size: 0.9rem;
    line-height: 1;
    transform: rotate(-90deg);
    transition: transform 0.2s var(--ease-out);
}

.config-subgroup:not(.is-collapsed) .config-subgroup-toggle-icon {
    transform: rotate(0deg);
}

.config-subgroup.is-collapsed .config-subgroup-body {
    display: none;
}

.config-subgroup.is-collapsed .config-subgroup-head {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom-color: transparent;
}

html[data-theme="dark"] .config-subgroup-head {
    border-bottom-color: rgba(148, 163, 184, 0.12);
}

html[data-theme="dark"] .config-subgroup-toggle {
    border-color: rgba(255, 255, 255, 0.1);
    background: rgba(30, 41, 59, 0.7);
    color: #cbd5e1;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

html[data-theme="dark"] .config-subgroup-toggle:hover {
    border-color: rgba(56, 189, 248, 0.35);
    background: rgba(56, 189, 248, 0.14);
    color: #38bdf8;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.config-subgroup-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.12), rgba(59, 130, 246, 0.06));
    border: 1px solid rgba(37, 99, 235, 0.18);
    color: #2563eb;
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.08);
}

html[data-theme="dark"] .config-subgroup-icon {
    background: linear-gradient(135deg, rgba(56, 189, 248, 0.16), rgba(37, 99, 235, 0.08));
    border-color: rgba(56, 189, 248, 0.25);
    color: #38bdf8;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.config-subgroup-title-wrap {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.config-subgroup-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-main);
    letter-spacing: 0.01em;
}

.config-subgroup-desc {
    font-size: 0.84rem;
    line-height: 1.55;
    color: var(--text-sub);
}

.config-subgroup-desc-warning {
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 2px solid rgba(239, 68, 68, 0.58);
    background: linear-gradient(135deg, rgba(254, 226, 226, 0.96), rgba(254, 242, 242, 0.95));
    color: #b91c1c;
    font-size: 0.83rem;
    font-weight: 800;
    line-height: 1.55;
    letter-spacing: 0.01em;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.14);
}

.config-subgroup-desc-warning.is-caution {
    border-color: rgba(245, 158, 11, 0.62);
    background: linear-gradient(135deg, rgba(254, 243, 199, 0.98), rgba(254, 249, 195, 0.95));
    color: #92400e;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.18);
}

.config-subgroup-desc-warning.is-notice {
    border-color: rgba(245, 158, 11, 0.46);
    background: linear-gradient(135deg, rgba(255, 251, 235, 0.98), rgba(254, 249, 195, 0.94));
    color: #92400e;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.14);
}

.config-subgroup-desc-warning.is-caution::before {
    content: '规则 · 覆盖顺序';
    display: block;
    margin-bottom: 6px;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    color: #b45309;
}

.config-subgroup-desc-warning.is-notice::before {
    content: '说明 · 使用指引';
    display: block;
    margin-bottom: 6px;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    color: #b45309;
}

html[data-theme="dark"] .config-subgroup-desc-warning {
    border-color: rgba(248, 113, 113, 0.72);
    background: linear-gradient(135deg, rgba(127, 29, 29, 0.78), rgba(153, 27, 27, 0.65));
    color: #fecaca;
    box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.22);
}

html[data-theme="dark"] .config-subgroup-desc-warning.is-caution {
    border-color: rgba(251, 191, 36, 0.78);
    background: linear-gradient(135deg, rgba(120, 53, 15, 0.82), rgba(146, 64, 14, 0.68));
    color: #fde68a;
    box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.20);
}

html[data-theme="dark"] .config-subgroup-desc-warning.is-notice {
    border-color: rgba(251, 191, 36, 0.62);
    background: linear-gradient(135deg, rgba(120, 53, 15, 0.70), rgba(146, 64, 14, 0.52));
    color: #fde68a;
    box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.16);
}

html[data-theme="dark"] .config-subgroup-desc-warning.is-caution::before {
    color: #fcd34d;
}

html[data-theme="dark"] .config-subgroup-desc-warning.is-notice::before {
    color: #fcd34d;
}

.config-subgroup-desc.is-callout {
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(99, 102, 241, 0.22);
    background: linear-gradient(135deg, rgba(238, 242, 255, 0.98), rgba(224, 231, 255, 0.92));
    color: #4338ca;
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.65;
    box-shadow: 0 8px 18px rgba(99, 102, 241, 0.10);
}

.config-subgroup-desc.is-callout::before {
    content: '机制 · 触发说明';
    display: block;
    margin-bottom: 6px;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: var(--primary);
}

html[data-theme="dark"] .config-subgroup-desc.is-callout {
    border-color: rgba(129, 140, 248, 0.34);
    background: linear-gradient(135deg, rgba(49, 46, 129, 0.42), rgba(67, 56, 202, 0.22));
    color: rgba(0, 113, 227, 0.25);
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.30);
}

html[data-theme="dark"] .config-subgroup-desc.is-callout::before {
    color: rgba(0, 113, 227, 0.4);
}

.config-subgroup-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.config-group-structured .form-item {
    position: relative;
    margin-bottom: 0;
    padding: 18px;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(255, 255, 255, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

html[data-theme="dark"] .config-group-structured .form-item {
    border-color: rgba(148, 163, 184, 0.12);
    background: rgba(15, 23, 42, 0.42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.config-group-structured .form-item.config-search-target {
    border-color: rgba(99, 102, 241, 0.72);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.10), inset 0 1px 0 rgba(255, 255, 255, 0.56);
    animation: configSearchTargetPulse 1.15s cubic-bezier(0.2, 0.8, 0.2, 1) 0s 3;
}

.config-group-structured .form-item.config-search-highlight {
    animation: configSearchTargetPulse 1.15s cubic-bezier(0.2, 0.8, 0.2, 1) 0s 3;
}

html[data-theme="dark"] .config-group-structured .form-item.config-search-target {
    border-color: rgba(129, 140, 248, 0.78);
    box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

@keyframes configSearchTargetPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.5);
    }

    45% {
        box-shadow: 0 0 0 8px rgba(99, 102, 241, 0.16), 0 14px 34px rgba(99, 102, 241, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.62);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(99, 102, 241, 0), inset 0 1px 0 rgba(255, 255, 255, 0.5);
    }
}

.hdhive-auth-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.hdhive-auth-status {
    padding: 12px 14px;
    border-radius: 12px;
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.55;
    border: 1px solid rgba(148, 163, 184, 0.18);
}

.hdhive-auth-status-muted {
    color: #475569;
    background: rgba(148, 163, 184, 0.10);
}

.hdhive-auth-status-ok {
    color: #047857;
    border-color: rgba(16, 185, 129, 0.24);
    background: rgba(16, 185, 129, 0.10);
}

.hdhive-auth-status-warn {
    color: #b45309;
    border-color: rgba(245, 158, 11, 0.26);
    background: rgba(245, 158, 11, 0.10);
}

.hdhive-auth-status-error {
    color: #b91c1c;
    border-color: rgba(239, 68, 68, 0.24);
    background: rgba(239, 68, 68, 0.10);
}

html[data-theme="dark"] .hdhive-auth-status-muted {
    color: rgba(226, 232, 240, 0.82);
    background: rgba(148, 163, 184, 0.10);
}

html[data-theme="dark"] .hdhive-auth-status-ok {
    color: #86efac;
    background: rgba(34, 197, 94, 0.12);
}

html[data-theme="dark"] .hdhive-auth-status-warn {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.13);
}

html[data-theme="dark"] .hdhive-auth-status-error {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.13);
}

.hdhive-auth-meta {
    min-height: 20px;
    color: var(--text-sub);
    font-size: 0.82rem;
    line-height: 1.5;
}

.hdhive-user-panel {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid rgba(99, 102, 241, 0.14);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

.hdhive-user-panel.hidden {
    display: none;
}

.hdhive-user-head {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.hdhive-user-avatar {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 999px;
    border: 1px solid rgba(99, 102, 241, 0.18);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.16), rgba(14, 165, 233, 0.16));
    color: var(--primary);
    font-size: 1.05rem;
    font-weight: 800;
}

.hdhive-user-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hdhive-user-identity {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.hdhive-user-name-row {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.hdhive-user-name {
    min-width: 0;
    color: var(--text-main);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hdhive-user-badge {
    flex: 0 0 auto;
    max-width: 120px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(16, 185, 129, 0.12);
    color: #047857;
    font-size: 0.74rem;
    font-weight: 800;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hdhive-user-subtitle {
    color: var(--text-sub);
    font-size: 0.82rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.hdhive-user-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
    gap: 8px;
}

.hdhive-user-metric {
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 10px;
    background: rgba(248, 250, 252, 0.78);
}

.hdhive-user-metric-value {
    min-width: 0;
    color: var(--text-main);
    font-size: 0.94rem;
    font-weight: 800;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hdhive-user-metric-label {
    margin-top: 2px;
    color: var(--text-sub);
    font-size: 0.74rem;
    line-height: 1.35;
}

.hdhive-user-times {
    display: grid;
    gap: 6px;
    padding-top: 2px;
}

.hdhive-user-time-row {
    display: grid;
    grid-template-columns: minmax(68px, max-content) minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: var(--text-sub);
    font-size: 0.8rem;
    line-height: 1.45;
}

.hdhive-user-time-label {
    color: var(--text-sub);
    font-weight: 700;
    white-space: nowrap;
}

.hdhive-user-time-value {
    min-width: 0;
    color: var(--text-main);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.hdhive-user-expire-note {
    margin-top: 2px;
    padding: 8px 10px;
    border: 1px solid rgba(245, 158, 11, 0.24);
    border-radius: 8px;
    background: rgba(255, 251, 235, 0.72);
    color: #92400e;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.hdhive-user-panel-error {
    border-color: rgba(245, 158, 11, 0.28);
    background: rgba(255, 251, 235, 0.74);
    color: #92400e;
    box-shadow: none;
}

.hdhive-user-error-text {
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

html[data-theme="dark"] .hdhive-user-panel {
    border-color: rgba(129, 140, 248, 0.24);
    background: rgba(15, 23, 42, 0.42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html[data-theme="dark"] .hdhive-user-avatar {
    border-color: rgba(129, 140, 248, 0.32);
    background: linear-gradient(135deg, rgba(129, 140, 248, 0.22), rgba(56, 189, 248, 0.16));
    color: rgba(0, 113, 227, 0.25);
}

html[data-theme="dark"] .hdhive-user-badge {
    background: rgba(34, 197, 94, 0.16);
    color: #86efac;
}

html[data-theme="dark"] .hdhive-user-metric {
    border-color: rgba(148, 163, 184, 0.16);
    background: rgba(30, 41, 59, 0.54);
}

html[data-theme="dark"] .hdhive-user-panel-error {
    border-color: rgba(245, 158, 11, 0.34);
    background: rgba(120, 53, 15, 0.22);
    color: #fde68a;
}

html[data-theme="dark"] .hdhive-user-expire-note {
    border-color: rgba(245, 158, 11, 0.34);
    background: rgba(120, 53, 15, 0.22);
    color: #fde68a;
}

@media (max-width: 560px) {
    .hdhive-user-panel {
        padding: 12px;
    }

    .hdhive-user-head {
        align-items: flex-start;
    }

    .hdhive-user-name-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .hdhive-user-badge {
        max-width: 100%;
    }

    .hdhive-user-metrics {
        grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
    }

    .hdhive-user-time-row {
        grid-template-columns: 1fr;
        gap: 2px;
    }
}

.hdhive-auth-hint {
    display: grid;
    gap: 6px;
    padding: 12px 14px;
    border: 1px solid rgba(245, 158, 11, 0.34);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(255, 247, 237, 0.96), rgba(254, 243, 199, 0.82));
    color: #92400e;
    font-size: 0.86rem;
    line-height: 1.6;
    text-wrap: pretty;
}

.hdhive-auth-hint-title {
    color: #78350f;
    font-size: 0.9rem;
    font-weight: 800;
}

.hdhive-auth-hint-body {
    color: #92400e;
}

.hdhive-auth-hint code {
    display: inline-block;
    max-width: 100%;
    padding: 2px 6px;
    border: 1px solid rgba(217, 119, 6, 0.28);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.74);
    color: #7c2d12;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: 0.83rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

html[data-theme="dark"] .hdhive-auth-hint {
    border-color: rgba(245, 158, 11, 0.34);
    background: linear-gradient(135deg, rgba(120, 53, 15, 0.28), rgba(146, 64, 14, 0.18));
    color: #fcd34d;
}

html[data-theme="dark"] .hdhive-auth-hint-title,
html[data-theme="dark"] .hdhive-auth-hint-body {
    color: #fde68a;
}

html[data-theme="dark"] .hdhive-auth-hint code {
    border-color: rgba(251, 191, 36, 0.28);
    background: rgba(15, 23, 42, 0.58);
    color: #fef3c7;
}

.hdhive-auth-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.hdhive-auth-btn {
    min-height: 40px;
    padding: 0 16px;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    background: var(--bg-card);
    color: var(--text-main);
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 700;
    transition: all 0.2s ease;
}

.hdhive-auth-btn.primary {
    border-color: transparent;
    background: var(--primary);
    color: #fff;
    box-shadow: 0 8px 18px rgba(99, 102, 241, 0.22);
}

.hdhive-auth-btn.danger {
    border-color: rgba(239, 68, 68, 0.28);
    background: rgba(239, 68, 68, 0.08);
    color: #b91c1c;
}

.hdhive-auth-btn:hover {
    transform: translateY(-1px);
    border-color: rgba(99, 102, 241, 0.35);
}

.hdhive-auth-btn:disabled {
    opacity: 0.62;
    cursor: not-allowed;
    transform: none;
}

html[data-theme="dark"] .hdhive-auth-btn.danger {
    border-color: rgba(248, 113, 113, 0.3);
    background: rgba(127, 29, 29, 0.24);
    color: #fca5a5;
}

.hdhive-sub-account-list {
    display: grid;
    gap: 12px;
}

.hdhive-sub-account-empty {
    padding: 14px;
    border: 1px dashed rgba(148, 163, 184, 0.28);
    border-radius: 12px;
    color: var(--text-sub);
    font-size: 0.9rem;
    font-weight: 700;
    text-align: center;
}

.hdhive-sub-account-row {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid rgba(99, 102, 241, 0.14);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

.hdhive-sub-account-row.is-disabled {
    opacity: 0.72;
}

.hdhive-sub-account-row.is-unauthorized {
    border-color: rgba(245, 158, 11, 0.24);
}

.hdhive-sub-account-head {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.hdhive-sub-account-avatar {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
}

.hdhive-sub-account-identity {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.hdhive-sub-account-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.hdhive-sub-account-title {
    min-width: 0;
    color: var(--text-main);
    font-size: 0.96rem;
    font-weight: 800;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hdhive-sub-account-badge {
    flex: 0 0 auto;
    max-width: 96px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hdhive-sub-account-badge.is-ok {
    background: rgba(16, 185, 129, 0.12);
    color: #047857;
}

.hdhive-sub-account-badge.is-warn {
    background: rgba(245, 158, 11, 0.14);
    color: #b45309;
}

.hdhive-sub-account-subtitle {
    color: var(--text-sub);
    font-size: 0.8rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.hdhive-sub-account-meta {
    display: grid;
    gap: 6px;
}

.hdhive-sub-account-metrics {
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
}

.hdhive-sub-account-meta-item {
    display: grid;
    grid-template-columns: minmax(68px, max-content) minmax(0, 1fr);
    gap: 10px;
    color: var(--text-sub);
    font-size: 0.78rem;
    line-height: 1.45;
}

.hdhive-sub-account-meta-label {
    font-weight: 800;
    white-space: nowrap;
}

.hdhive-sub-account-meta-value {
    min-width: 0;
    color: var(--text-main);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.hdhive-sub-account-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.hdhive-sub-account-btn {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    background: var(--bg-card);
    color: var(--text-main);
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 800;
    transition: all 0.2s ease;
}

.hdhive-sub-account-btn.primary {
    border-color: transparent;
    background: var(--primary);
    color: #fff;
}

.hdhive-sub-account-btn.danger {
    border-color: rgba(239, 68, 68, 0.24);
    color: #b91c1c;
}

.hdhive-sub-account-btn:hover {
    transform: translateY(-1px);
    border-color: rgba(99, 102, 241, 0.35);
}

.hdhive-sub-account-btn:disabled {
    opacity: 0.62;
    cursor: not-allowed;
    transform: none;
}

html[data-theme="dark"] .hdhive-sub-account-row {
    border-color: rgba(129, 140, 248, 0.24);
    background: rgba(15, 23, 42, 0.42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html[data-theme="dark"] .hdhive-sub-account-empty {
    border-color: rgba(148, 163, 184, 0.2);
}

html[data-theme="dark"] .hdhive-sub-account-badge.is-ok {
    background: rgba(34, 197, 94, 0.16);
    color: #86efac;
}

html[data-theme="dark"] .hdhive-sub-account-badge.is-warn {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d;
}

html[data-theme="dark"] .hdhive-sub-account-btn.danger {
    border-color: rgba(248, 113, 113, 0.26);
    color: #fca5a5;
}

@media (max-width: 560px) {
    .hdhive-sub-account-row {
        padding: 12px;
    }

    .hdhive-sub-account-head {
        align-items: flex-start;
    }

    .hdhive-sub-account-title-row,
    .hdhive-sub-account-actions {
        align-items: flex-start;
    }

    .hdhive-sub-account-title-row {
        flex-direction: column;
        gap: 5px;
    }

    .hdhive-sub-account-meta-item {
        grid-template-columns: 1fr;
        gap: 2px;
    }
}

.config-group-structured .form-item.is-disabled {
    opacity: 0.58;
    background: rgba(148, 163, 184, 0.08);
}

html[data-theme="dark"] .config-group-structured .form-item.is-disabled {
    background: rgba(30, 41, 59, 0.45);
}

.config-subgroup.is-disabled .config-subgroup-title-wrap,
.config-subgroup.is-disabled .config-subgroup-body {
    opacity: 0.74;
}

.config-group-structured .form-header {
    margin-bottom: 10px;
}

.config-group-structured .form-desc {
    margin-bottom: 12px;
}

.config-group-structured .vf-inline-btn-wrap,
.config-group-structured .key-value-wrapper,
.config-group-structured .value-list-wrapper,
.config-group-structured .checkbox-grid,
.config-group-structured .vf-inline-editor,
.config-group-structured .cron-helper,
.config-group-structured .emby-deep-delete-guide-item,
.config-group-structured .switch-wrapper {
    margin-top: 0;
}

.emby-deep-delete-guide-item {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.emby-deep-delete-guide-desc {
    margin-bottom: 0;
}

.emby-deep-delete-guide-warning {
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(245, 158, 11, 0.4);
    background: rgba(250, 204, 21, 0.18);
    color: #92400e;
    font-size: 0.84rem;
    line-height: 1.7;
    font-weight: 600;
}

html[data-theme="dark"] .emby-deep-delete-guide-warning {
    border-color: rgba(251, 191, 36, 0.45);
    background: rgba(245, 158, 11, 0.18);
    color: #fde68a;
}

.emby-deep-delete-guide-note {
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(99, 102, 241, 0.16);
    background: rgba(99, 102, 241, 0.06);
    color: var(--text-secondary);
    font-size: 0.84rem;
    line-height: 1.7;
}

html[data-theme="dark"] .emby-deep-delete-guide-note {
    border-color: rgba(129, 140, 248, 0.22);
    background: rgba(79, 70, 229, 0.12);
}

.emby-deep-delete-guide-image-wrap {
    overflow: hidden;
    border-radius: 18px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.82);
}

.emby-deep-delete-guide-image {
    display: block;
    width: 100%;
    height: auto;
}

.emby-deep-delete-guide-meta,
.emby-deep-delete-guide-link-label,
.emby-deep-delete-guide-status {
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.emby-deep-delete-guide-link-label {
    font-weight: 700;
    color: var(--text-primary);
}

.emby-deep-delete-guide-url {
    min-height: 88px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    line-height: 1.6;
    resize: vertical;
}

.config-group-structured .switch-wrapper {
    background: rgba(99, 102, 241, 0.04);
    border-color: rgba(99, 102, 241, 0.08);
}

html[data-theme="dark"] .config-group-structured .switch-wrapper {
    background: rgba(99, 102, 241, 0.08);
    border-color: rgba(129, 140, 248, 0.14);
}

.config-group-structured .form-item.is-disabled .switch-wrapper {
    cursor: not-allowed;
}

.config-group-structured .form-item.is-disabled .form-input,
.config-group-structured .form-item.is-disabled .switch-label {
    cursor: not-allowed;
}

.organize-overwrite-rule-select-wrap {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.organize-overwrite-rule-radio-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.organize-overwrite-rule-radio-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: rgba(255, 255, 255, 0.82);
    cursor: pointer;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.organize-overwrite-rule-radio-item:hover {
    border-color: rgba(99, 102, 241, 0.28);
    background: rgba(99, 102, 241, 0.05);
}

.organize-overwrite-rule-radio-item input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
    flex: 0 0 auto;
}

.organize-overwrite-rule-radio-text {
    font-size: 0.94rem;
    color: var(--text-main);
    line-height: 1.5;
}

html[data-theme="dark"] .organize-overwrite-rule-radio-item {
    border-color: rgba(148, 163, 184, 0.18);
    background: rgba(15, 23, 42, 0.62);
}

html[data-theme="dark"] .organize-overwrite-rule-radio-item:hover {
    border-color: rgba(129, 140, 248, 0.28);
    background: rgba(99, 102, 241, 0.12);
}

.config-group-structured .form-item.is-disabled .organize-overwrite-rule-radio-item {
    cursor: not-allowed;
}

.config-group-structured .form-item.is-disabled .organize-overwrite-rule-radio-text {
    color: var(--text-sub);
}

.organize-overwrite-rule-warning {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(245, 158, 11, 0.42);
    background: rgba(254, 243, 199, 0.62);
    color: #92400e;
    font-size: 0.84rem;
    line-height: 1.7;
    font-weight: 600;
}

html[data-theme="dark"] .organize-overwrite-rule-warning {
    border-color: rgba(251, 191, 36, 0.45);
    background: rgba(120, 53, 15, 0.34);
    color: #fde68a;
}

/* 影视整理：可视化洗版策略编辑器 */
.organize-wash-strategy-editor { display: flex; flex-direction: column; gap: 12px; margin-top: 4px; }
.organize-wash-mode-panel { padding: 12px; border: 1px solid rgba(99, 102, 241, .20); border-radius: 14px; background: linear-gradient(135deg, rgba(238, 242, 255, .75), rgba(255, 255, 255, .72)); }
.organize-wash-mode-title { margin-bottom: 9px; color: var(--text-main); font-size: .84rem; font-weight: 800; }
.organize-wash-mode-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.organize-wash-mode-option { display: flex; align-items: flex-start; gap: 8px; min-width: 0; padding: 10px; border: 1px solid rgba(99, 102, 241, .16); border-radius: 10px; background: rgba(255,255,255,.70); cursor: pointer; }
.organize-wash-mode-option:hover { border-color: rgba(79, 70, 229, .42); background: rgba(238, 242, 255, .92); }
.organize-wash-mode-option input { width: 16px; height: 16px; flex: 0 0 auto; margin: 2px 0 0; accent-color: #4f46e5; }
.organize-wash-mode-option-text { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.organize-wash-mode-option-text strong { color: var(--text-main); font-size: .84rem; line-height: 1.25; }
.organize-wash-mode-option-text small { color: var(--text-sub); font-size: .75rem; line-height: 1.4; }
.organize-wash-strategy-help, .organize-wash-no-overwrite-notice { padding: 10px 12px; border-radius: 10px; font-size: .79rem; line-height: 1.55; }
.organize-wash-strategy-help { color: #475569; border: 1px solid rgba(148, 163, 184, .22); background: rgba(248, 250, 252, .88); }
.organize-wash-no-overwrite-notice { color: #9a3412; border: 1px solid rgba(249, 115, 22, .30); background: rgba(255, 237, 213, .80); font-weight: 700; }
.organize-wash-rule-list { display: flex; flex-direction: column; gap: 8px; }
.organize-wash-rule-card { overflow: hidden; border: 1px solid rgba(148, 163, 184, .22); border-radius: 14px; background: rgba(255,255,255,.84); box-shadow: 0 1px 2px rgba(15,23,42,.025); transition: border-color .18s ease, box-shadow .18s ease, opacity .18s ease; }
.organize-wash-rule-card:hover { border-color: rgba(99, 102, 241, .36); box-shadow: 0 7px 18px rgba(79,70,229,.07); }
.organize-wash-rule-card.is-dragging, .organize-wash-priority-row.is-dragging { opacity: .48; }
.organize-wash-rule-card.is-disabled { border-style: dashed; background: rgba(148,163,184,.07); }
.organize-wash-rule-head { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 11px 12px; }
.organize-wash-drag-handle { flex: 0 0 auto; color: #94a3b8; font-size: 1.08rem; line-height: 1; letter-spacing: -2px; cursor: grab; user-select: none; }
.organize-wash-drag-handle:active { cursor: grabbing; }
.organize-wash-rule-number, .organize-wash-priority-rank { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; color: #6366f1; border: 1px solid rgba(99,102,241,.18); border-radius: 999px; background: rgba(99,102,241,.08); font-size: .72rem; font-weight: 800; line-height: 1; }
.organize-wash-rule-number { width: 28px; height: 24px; }
.organize-wash-priority-rank { width: 22px; height: 22px; }
.organize-wash-rule-title-wrap { display: flex; flex: 1 1 auto; min-width: 0; flex-direction: column; gap: 2px; }
.organize-wash-rule-title-wrap strong { color: var(--text-main); font-size: .91rem; line-height: 1.25; }
.organize-wash-rule-title-wrap small { overflow: hidden; color: var(--text-sub); font-size: .73rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.organize-wash-rule-toggle { display: inline-flex; align-items: center; gap: 5px; flex: 0 0 auto; color: #475569; font-size: .74rem; font-weight: 700; cursor: pointer; user-select: none; }
.organize-wash-rule-toggle input { width: 15px; height: 15px; margin: 0; accent-color: #4f46e5; }
.organize-wash-rule-actions, .organize-wash-priority-actions { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.organize-wash-icon-button, .organize-wash-detail-button, .organize-wash-add-button { border: 1px solid rgba(148,163,184,.25); background: rgba(255,255,255,.84); color: #475569; cursor: pointer; font-weight: 700; transition: all .16s ease; }
.organize-wash-icon-button { display: inline-flex; align-items: center; justify-content: center; width: 25px; height: 25px; padding: 0; border-radius: 7px; font-size: .8rem; }
.organize-wash-detail-button, .organize-wash-add-button { min-height: 29px; padding: 5px 9px; border-radius: 8px; font-size: .75rem; }
.organize-wash-add-button { color: #4338ca; border-color: rgba(99,102,241,.26); background: rgba(238,242,255,.86); }
.organize-wash-icon-button:hover:not(:disabled), .organize-wash-detail-button:hover:not(:disabled), .organize-wash-add-button:hover:not(:disabled) { color: #4338ca; border-color: rgba(79,70,229,.48); background: rgba(238,242,255,.96); }
.organize-wash-icon-button:disabled, .organize-wash-detail-button:disabled, .organize-wash-add-button:disabled { opacity: .42; cursor: not-allowed; }
.organize-wash-rule-details { padding: 0 12px 12px; border-top: 1px solid rgba(148,163,184,.16); background: rgba(248,250,252,.68); }
.organize-wash-rule-details.hidden { display: none; }
.organize-wash-rule-details-hint { margin: 10px 0 8px; color: var(--text-sub); font-size: .75rem; line-height: 1.45; }
.organize-wash-priority-list { display: flex; flex-direction: column; gap: 6px; }
.release-group-priority-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 8px; }
.organize-wash-priority-row { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 8px 9px; border: 1px solid rgba(148,163,184,.18); border-radius: 9px; background: rgba(255,255,255,.80); }
.organize-wash-priority-name { flex: 1 1 auto; min-width: 0; color: var(--text-main); font-size: .82rem; line-height: 1.35; }
.organize-wash-release-group-input { flex: 1 1 auto; min-width: 0; height: 34px; padding: 6px 9px; font-size: .82rem; }
.organize-wash-release-group-add { display: flex; gap: 8px; margin-top: 8px; }
.organize-wash-release-group-add .form-input { min-width: 0; height: 34px; padding: 6px 9px; font-size: .82rem; }
.organize-wash-strategy-editor.is-no-overwrite .organize-wash-rule-list { pointer-events: none; }
html[data-theme="dark"] .organize-wash-mode-panel { border-color: rgba(129,140,248,.30); background: linear-gradient(135deg, rgba(49,46,129,.25), rgba(15,23,42,.50)); }
html[data-theme="dark"] .organize-wash-mode-option, html[data-theme="dark"] .organize-wash-rule-card, html[data-theme="dark"] .organize-wash-priority-row, html[data-theme="dark"] .organize-wash-icon-button, html[data-theme="dark"] .organize-wash-detail-button { border-color: rgba(148,163,184,.20); background: rgba(15,23,42,.62); }
html[data-theme="dark"] .organize-wash-mode-option:hover, html[data-theme="dark"] .organize-wash-icon-button:hover:not(:disabled), html[data-theme="dark"] .organize-wash-detail-button:hover:not(:disabled) { border-color: rgba(129,140,248,.48); background: rgba(67,56,202,.22); }
html[data-theme="dark"] .organize-wash-rule-details, html[data-theme="dark"] .organize-wash-strategy-help { border-color: rgba(148,163,184,.18); background: rgba(15,23,42,.42); color: #cbd5e1; }
html[data-theme="dark"] .organize-wash-no-overwrite-notice { color: #fed7aa; border-color: rgba(251,146,60,.36); background: rgba(124,45,18,.36); }

@media (max-width: 720px) {
    .organize-wash-mode-options { grid-template-columns: 1fr; }
    .release-group-priority-list { grid-template-columns: 1fr; }
    .organize-wash-rule-head { flex-wrap: wrap; }
    .organize-wash-rule-title-wrap { flex-basis: calc(100% - 80px); }
    .organize-wash-rule-title-wrap small { overflow: visible; white-space: normal; }
    .organize-wash-rule-toggle { margin-left: 33px; }
    .organize-wash-rule-actions, .organize-wash-detail-button { margin-left: auto; }
}

@media (max-width: 480px) {
    .organize-wash-rule-head, .organize-wash-priority-row { gap: 6px; padding: 9px; }
    .organize-wash-rule-drag-handle, .organize-wash-priority-row > .organize-wash-drag-handle { display: none; }
    .organize-wash-rule-title-wrap { flex-basis: calc(100% - 36px); }
    .organize-wash-rule-toggle { margin-left: 0; }
    .organize-wash-priority-actions .organize-wash-icon-button { width: 23px; height: 23px; }
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.form-item {
    margin-bottom: 28px;
}

.form-header {
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.form-header-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

.vf-inline-open-btn {
    border: 1px solid rgba(99, 102, 241, 0.35);
    background: rgba(99, 102, 241, 0.10);
    color: var(--primary);
    border-radius: 999px;
    padding: 7px 14px;
    font-size: 0.88rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
}

.vf-inline-btn-wrap {
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.vf-inline-open-btn:hover {
    background: rgba(99, 102, 241, 0.16);
    border-color: rgba(99, 102, 241, 0.55);
    transform: translateY(-1px);
}

.vf-inline-copy-btn {
    border: 1px solid rgba(16, 185, 129, 0.35);
    background: rgba(16, 185, 129, 0.10);
    color: #10b981;
    border-radius: 999px;
    padding: 7px 14px;
    font-size: 0.88rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
}

.vf-inline-copy-btn:hover {
    background: rgba(16, 185, 129, 0.16);
    border-color: rgba(16, 185, 129, 0.55);
    transform: translateY(-1px);
}

html:not([data-theme="dark"]) .vf-inline-open-btn {
    background: var(--primary-light);
    border-color: rgba(0, 113, 227, 0.25);
    color: #4338ca;
}

html:not([data-theme="dark"]) .vf-inline-open-btn:hover {
    background: #e0e7ff;
    border-color: rgba(0, 113, 227, 0.4);
}

html:not([data-theme="dark"]) .vf-inline-copy-btn {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #047857;
}

html:not([data-theme="dark"]) .vf-inline-copy-btn:hover {
    background: #d1fae5;
    border-color: #6ee7b7;
}

.form-label {
    font-weight: 600;
    font-size: 0.95rem;
    color: rgba(229, 231, 235, 0.85);
}

html:not([data-theme="dark"]) .form-label {
    color: #374151;
}

.required-tag {
    background: #fff1f2;
    color: #e11d48;
    font-size: 0.7rem;
    padding: 2px 8px;
    border-radius: 99px;
    font-weight: 700;
    border: 1px solid #ffe4e6;
}

.field-scope-badge {
    display: inline-flex;
    align-items: center;
    margin-left: 4px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(59, 130, 246, 0.10);
    border: 1px solid rgba(59, 130, 246, 0.18);
    color: #2563eb;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

html[data-theme="dark"] .field-scope-badge {
    background: rgba(59, 130, 246, 0.14);
    border-color: rgba(96, 165, 250, 0.24);
    color: #93c5fd;
}

.field-scope-hint {
    margin-bottom: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(59, 130, 246, 0.16);
    background: linear-gradient(135deg, rgba(239, 246, 255, 0.96), rgba(219, 234, 254, 0.88));
    color: #1d4ed8;
    font-size: 0.8rem;
    line-height: 1.55;
    font-weight: 600;
}

html[data-theme="dark"] .field-scope-hint {
    border-color: rgba(96, 165, 250, 0.24);
    background: linear-gradient(135deg, rgba(30, 64, 175, 0.25), rgba(30, 41, 59, 0.42));
    color: #bfdbfe;
}

.form-desc {
    font-size: 0.85rem;
    color: #6b7280;
    margin-bottom: 10px;
    line-height: 1.5;
}

html[data-theme="dark"] .form-desc {
    color: rgba(229, 231, 235, 0.60);
}

.vf-inline-editor {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.vf-inline-preview {
    min-height: 92px;
    resize: vertical;
    font-family: "Cascadia Code", "Consolas", monospace;
    font-size: 0.82rem;
    line-height: 1.5;
    cursor: default;
}

.vf-inline-tip {
    font-size: 0.76rem;
    color: var(--text-sub);
}

.vf-inline-warning {
    border: 2px solid rgba(239, 68, 68, 0.58);
    background: linear-gradient(135deg, rgba(254, 226, 226, 0.96), rgba(254, 242, 242, 0.95));
    color: #b91c1c;
    border-radius: 10px;
    padding: 11px 13px;
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: 0.01em;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.16), 0 8px 18px rgba(239, 68, 68, 0.15);
}

html[data-theme="dark"] .vf-inline-warning {
    border-color: rgba(248, 113, 113, 0.72);
    background: linear-gradient(135deg, rgba(127, 29, 29, 0.78), rgba(153, 27, 27, 0.65));
    color: #fecaca;
    box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.24), 0 8px 20px rgba(0, 0, 0, 0.35);
}

.vf-inline-warning-badge {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid rgba(220, 38, 38, 0.3);
    background: rgba(220, 38, 38, 0.12);
    color: #dc2626;
    font-size: 0.74rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

html[data-theme="dark"] .vf-inline-warning-badge {
    border-color: rgba(248, 113, 113, 0.45);
    background: rgba(248, 113, 113, 0.2);
    color: #fecaca;
}

.form-input {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: var(--radius-m);
    font-size: 0.95rem;
    background: rgba(148, 163, 184, 0.10);
    transition: all 0.2s;
    color: var(--text-main);
}

html:not([data-theme="dark"]) .form-input {
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    color: #1f2937;
}

.form-input:focus {
    background: var(--bg-card);
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-light);
}

.form-input.cron-input-valid {
    border-color: rgba(16, 185, 129, 0.45);
}

.form-input.cron-input-invalid {
    border-color: rgba(239, 68, 68, 0.55);
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.10);
}

.cron-helper {
    margin-top: 10px;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(148, 163, 184, 0.08);
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 0.83rem;
    line-height: 1.55;
}

html:not([data-theme="dark"]) .cron-helper {
    background: #f8fafc;
    border-color: #e5e7eb;
}

.cron-helper-status {
    font-weight: 700;
    color: var(--text-main);
}

.cron-helper-mechanism,
.cron-helper-next,
.cron-helper-example {
    color: var(--text-sub);
}

.cron-helper.is-valid {
    border-color: rgba(16, 185, 129, 0.28);
    background: rgba(16, 185, 129, 0.08);
}

html:not([data-theme="dark"]) .cron-helper.is-valid {
    background: #ecfdf5;
    border-color: #a7f3d0;
}

.cron-helper.is-valid .cron-helper-status {
    color: #059669;
}

.cron-helper.is-invalid {
    border-color: rgba(239, 68, 68, 0.28);
    background: rgba(239, 68, 68, 0.08);
}

html:not([data-theme="dark"]) .cron-helper.is-invalid {
    background: #fef2f2;
    border-color: #fecaca;
}

.cron-helper.is-invalid .cron-helper-status {
    color: #dc2626;
}

.cron-helper.is-empty .cron-helper-status {
    color: var(--text-main);
}

/* 卡片式配置项 - 关键词:目录ID */
.key-value-wrapper {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 8px;
}

.key-value-card-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    align-items: start;
}

.key-value-card-list.single-column {
    grid-template-columns: 1fr;
}

/* 万能转发配置卡片：一行最多两个 */
.tg-transfer-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.key-value-card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: rgba(148, 163, 184, 0.10);
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: var(--radius-m);
    transition: all 0.2s;
    min-width: 0;
}

html:not([data-theme="dark"]) .key-value-card {
    background: white;
    border: 1px solid #e5e7eb;
}

.key-value-card:hover {
    border-color: #d1d5db;
    background: #f3f4f6;
}

html[data-theme="dark"] .key-value-card:hover {
    background: rgba(148, 163, 184, 0.15);
    border-color: rgba(148, 163, 184, 0.25);
}

/* 万能转发卡片内改为纵向排布，字段更清晰 */
.tg-transfer-card {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 14px;
}

.tg-transfer-card .kv-key-input,
.tg-transfer-card .kv-target-input,
.tg-transfer-card .kv-value-input,
.tg-transfer-card .kv-blacklist-input {
    width: 100%;
}

.tg-transfer-option-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: var(--radius-m);
    background: rgba(99, 102, 241, 0.08);
    border: 1px solid rgba(99, 102, 241, 0.12);
    cursor: pointer;
}

html:not([data-theme="dark"]) .tg-transfer-option-row {
    background: #f5f7ff;
    border-color: #dfe3ff;
}

.tg-transfer-option-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.tg-transfer-option-label {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--text-main);
}

.tg-transfer-option-hint {
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--text-muted);
}

.kv-spoiler-input,
.kv-enabled-input {
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
    flex-shrink: 0;
}

.tg-transfer-card .kv-separator {
    display: none;
}

.tg-transfer-card .kv-card-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 2px;
}

.tg-transfer-card .kv-delete-btn {
    align-self: auto;
}

.tg-scheduled-sender-panel {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.tg-scheduled-toolbar {
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.tg-scheduled-toolbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.tg-scheduled-toolbar-actions .kv-test-btn {
    min-height: 34px;
    padding: 9px 12px;
    font-weight: 600;
}

.tg-scheduled-helper,
.tg-scheduled-status {
    padding: 10px 12px;
    border-radius: var(--radius-m);
    font-size: 0.88rem;
    line-height: 1.55;
}

.tg-scheduled-helper {
    color: var(--text-sub);
    background: rgba(14, 165, 233, 0.08);
    border: 1px solid rgba(14, 165, 233, 0.18);
}

html:not([data-theme="dark"]) .tg-scheduled-helper {
    background: #f0f9ff;
    border-color: #bae6fd;
}

.tg-scheduled-status {
    color: var(--text-sub);
    background: rgba(148, 163, 184, 0.10);
    border: 1px solid rgba(148, 163, 184, 0.18);
}

.tg-scheduled-status.is-success {
    color: #059669;
    background: rgba(16, 185, 129, 0.08);
    border-color: rgba(16, 185, 129, 0.25);
}

.tg-scheduled-status.is-error {
    color: #dc2626;
    background: rgba(239, 68, 68, 0.08);
    border-color: rgba(239, 68, 68, 0.25);
}

.tg-scheduled-status.is-warning {
    color: #d97706;
    background: rgba(245, 158, 11, 0.10);
    border-color: rgba(245, 158, 11, 0.26);
}

.tg-scheduled-card-grid {
    margin-top: 2px;
}

.tg-scheduled-card {
    min-height: 0;
}

.tg-scheduled-enable-row {
    margin: 0;
}

.tg-scheduled-content-input {
    width: 100%;
    min-height: 112px;
    resize: vertical;
    line-height: 1.55;
}

.tg-scheduled-cron-shell {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tg-scheduled-card-actions {
    justify-content: space-between !important;
    align-items: flex-start !important;
}

.tg-scheduled-card-state {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--text-muted);
    font-size: 0.82rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.tg-scheduled-card-state.success {
    color: #059669;
}

.tg-scheduled-card-state.failed,
.tg-scheduled-card-state.invalid_config {
    color: #dc2626;
}

.tg-scheduled-card-state.running,
.tg-scheduled-card-state.retrying,
.tg-scheduled-card-state.queued {
    color: #2563eb;
}

.tg-scheduled-card-error {
    color: #dc2626;
    font-size: 0.8rem;
    line-height: 1.45;
    padding: 8px 10px;
    border-radius: var(--radius-m);
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.18);
    overflow-wrap: anywhere;
}

.tg-scheduled-empty {
    grid-column: 1 / -1;
    padding: 22px 16px;
    text-align: center;
    color: var(--text-muted);
    border: 1px dashed rgba(148, 163, 184, 0.38);
    border-radius: var(--radius-m);
    background: rgba(148, 163, 184, 0.08);
}

@media (max-width: 1100px) {
    .tg-transfer-card-grid {
        grid-template-columns: 1fr;
    }
}

.kv-key-input {
    flex: 1;
    min-width: 0;
    padding: 8px 12px;
    border: 1px solid rgba(148, 163, 184, 0.20);
    border-radius: var(--radius-m);
    background: rgba(15, 23, 42, 0.55);
    font-size: 0.9rem;
    transition: all 0.2s;
    color: var(--text-main);
}

html:not([data-theme="dark"]) .kv-key-input {
    border-color: #e5e7eb;
    background: white;
    color: #1f2937;
}

.kv-key-input:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-light);
}

.kv-separator {
    font-size: 1rem;
    font-weight: 600;
    color: #6b7280;
    user-select: none;
    flex-shrink: 0;
}

.kv-value-input,
.kv-target-input,
.kv-blacklist-input {
    flex: 1;
    min-width: 0;
    padding: 8px 12px;
    border: 1px solid rgba(148, 163, 184, 0.20);
    border-radius: var(--radius-m);
    background: rgba(15, 23, 42, 0.55);
    font-size: 0.9rem;
    transition: all 0.2s;
    color: var(--text-main);
}

.kv-note-input {
    flex: 1;
    min-width: 0;
    padding: 8px 12px;
    border: 1px solid rgba(148, 163, 184, 0.20);
    border-radius: var(--radius-m);
    background: rgba(15, 23, 42, 0.55);
    font-size: 0.9rem;
    transition: all 0.2s;
    color: var(--text-main);
}

html:not([data-theme="dark"]) .kv-note-input {
    border: 1px solid #e5e7eb;
    background: white;
    color: #1f2937;
}

.kv-note-input:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-light);
}

.monitor-link-card {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 14px;
    border-style: solid;
    border-color: rgba(99, 102, 241, 0.24);
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.10) 0%, rgba(148, 163, 184, 0.08) 100%);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
}

.monitor-link-card .kv-key-input,
.monitor-link-card .kv-value-input,
.monitor-link-card .kv-note-input {
    width: 100%;
}

.monitor-link-card-title {
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--primary);
    letter-spacing: 0.01em;
}

.monitor-link-card .kv-separator {
    display: none !important;
}

.monitor-link-card .kv-delete-btn {
    align-self: flex-end;
    margin-top: 2px;
}

.monitor-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

@media (max-width: 1100px) {
    .monitor-link-grid {
        grid-template-columns: 1fr;
    }
}

html:not([data-theme="dark"]) .monitor-link-card {
    border-color: rgba(79, 70, 229, 0.22);
    background: linear-gradient(180deg, var(--primary-light) 0%, #ffffff 100%);
    box-shadow: 0 10px 22px rgba(99, 102, 241, 0.08);
}

html[data-theme="dark"] .monitor-link-card {
    border-color: rgba(129, 140, 248, 0.35);
    background: linear-gradient(180deg, rgba(67, 56, 202, 0.20) 0%, rgba(15, 23, 42, 0.62) 100%);
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.42);
}

html[data-theme="dark"] .monitor-link-card-title {
    color: rgba(0, 113, 227, 0.4);
}

html:not([data-theme="dark"]) .kv-value-input,
html:not([data-theme="dark"]) .kv-target-input,
html:not([data-theme="dark"]) .kv-blacklist-input {
    border: 1px solid #e5e7eb;
    background: white;
    color: #1f2937;
}

.kv-value-input:focus,
.kv-target-input:focus,
.kv-blacklist-input:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-light);
}

.kv-delete-btn {
    width: 28px;
    height: 28px;
    border: none;
    background: #fee2e2;
    color: #dc2626;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.3rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    flex-shrink: 0;
}

.kv-delete-btn:hover {
    background: #fecaca;
    transform: scale(1.1);
}

.kv-test-btn {
    border: none;
    background: var(--primary);
    color: #fff;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.8rem;
    line-height: 1;
    padding: 8px 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    flex-shrink: 0;
    white-space: nowrap;
}

.kv-test-btn:hover {
    background: var(--primary-hover);
}

.kv-test-btn:disabled,
.kv-test-btn.is-loading {
    opacity: 0.7;
    cursor: not-allowed;
}

html:not([data-theme="dark"]) .kv-test-btn {
    background: var(--primary);
}

html:not([data-theme="dark"]) .kv-test-btn:hover {
    background: #4338ca;
}

.kv-add-btn {
    padding: 10px 16px;
    border: 2px dashed #d1d5db;
    background: transparent;
    color: var(--primary);
    border-radius: var(--radius-m);
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: fit-content;
    margin-top: 4px;
}

.kv-add-btn:hover {
    border-color: var(--primary);
    background: var(--primary-light);
}

html[data-theme="dark"] .kv-add-btn {
    border-color: rgba(148, 163, 184, 0.25);
}

html[data-theme="dark"] .kv-add-btn:hover {
    background: rgba(129, 140, 248, 0.15);
}

/* 卡片式配置项 - 简单值列表（用 | 或逗号分隔） */
.value-list-wrapper {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 8px;
}

.value-list-card-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    align-items: start;
}

.value-list-card-list.single-column {
    grid-template-columns: 1fr;
}

.value-list-card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: rgba(148, 163, 184, 0.10);
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: var(--radius-m);
    transition: all 0.2s;
    min-width: 0;
}

html:not([data-theme="dark"]) .value-list-card {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.value-list-card:hover {
    border-color: #d1d5db;
    background: #f3f4f6;
}

html[data-theme="dark"] .value-list-card:hover {
    background: rgba(148, 163, 184, 0.20);
    border-color: rgba(148, 163, 184, 0.30);
}

.vl-input {
    flex: 1;
    min-width: 0;
    padding: 8px 12px;
    border: 1px solid rgba(148, 163, 184, 0.20);
    border-radius: var(--radius-m);
    background: rgba(15, 23, 42, 0.55);
    font-size: 0.9rem;
    transition: all 0.2s;
    color: var(--text-main);
}

html:not([data-theme="dark"]) .vl-input {
    border-color: #e5e7eb;
    background: white;
    color: #1f2937;
}

.vl-input:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-light);
}

.organize-zero-invalid-wrap {
    border: 2px solid rgba(239, 68, 68, 0.52);
    border-radius: 12px;
    padding: 8px;
    background: rgba(254, 226, 226, 0.28);
}

html[data-theme="dark"] .organize-zero-invalid-wrap {
    border-color: rgba(248, 113, 113, 0.65);
    background: rgba(127, 29, 29, 0.3);
}

.organize-zero-invalid {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.16) !important;
}

.organize-zero-warning {
    margin-top: 6px;
    border: 2px solid rgba(239, 68, 68, 0.58);
    background: linear-gradient(135deg, rgba(254, 226, 226, 0.96), rgba(254, 242, 242, 0.95));
    color: #b91c1c;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 0.83rem;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: 0.01em;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12), 0 8px 18px rgba(239, 68, 68, 0.12);
}

html[data-theme="dark"] .organize-zero-warning {
    border-color: rgba(248, 113, 113, 0.72);
    background: linear-gradient(135deg, rgba(127, 29, 29, 0.78), rgba(153, 27, 27, 0.65));
    color: #fecaca;
    box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.2), 0 8px 20px rgba(0, 0, 0, 0.35);
}

.blocked-channel-invalid-wrap {
    border: 2px solid rgba(239, 68, 68, 0.52);
    border-radius: 12px;
    padding: 8px;
    background: rgba(254, 226, 226, 0.28);
}

html[data-theme="dark"] .blocked-channel-invalid-wrap {
    border-color: rgba(248, 113, 113, 0.65);
    background: rgba(127, 29, 29, 0.3);
}

.blocked-channel-invalid {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.16) !important;
}

.blocked-channel-warning {
    margin-top: 6px;
    border: 2px solid rgba(239, 68, 68, 0.58);
    background: linear-gradient(135deg, rgba(254, 226, 226, 0.96), rgba(254, 242, 242, 0.95));
    color: #b91c1c;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 0.83rem;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: 0.01em;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12), 0 8px 18px rgba(239, 68, 68, 0.12);
}

html[data-theme="dark"] .blocked-channel-warning {
    border-color: rgba(248, 113, 113, 0.72);
    background: linear-gradient(135deg, rgba(127, 29, 29, 0.78), rgba(153, 27, 27, 0.65));
    color: #fecaca;
    box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.2), 0 8px 20px rgba(0, 0, 0, 0.35);
}

.vl-delete-btn {
    width: 28px;
    height: 28px;
    border: none;
    background: #fee2e2;
    color: #dc2626;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.3rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    flex-shrink: 0;
}

.vl-delete-btn:hover {
    background: #fecaca;
    transform: scale(1.1);
}

.vl-add-btn {
    padding: 10px 16px;
    border: 2px dashed #d1d5db;
    background: transparent;
    color: var(--primary);
    border-radius: var(--radius-m);
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: fit-content;
    margin-top: 4px;
}

.vl-add-btn:hover {
    border-color: var(--primary);
    background: var(--primary-light);
}

html[data-theme="dark"] .vl-add-btn {
    border-color: rgba(148, 163, 184, 0.25);
}

html[data-theme="dark"] .vl-add-btn:hover {
    background: rgba(129, 140, 248, 0.15);
}

/* Emby STRM 路径映射 */
.emby-strm-path-mapping-editor {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 4px;
}

.emby-strm-path-mapping-guide {
    padding: 12px 14px;
    border: 1px solid rgba(99, 102, 241, 0.18);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(238, 242, 255, 0.9), rgba(248, 250, 252, 0.9));
}

html[data-theme="dark"] .emby-strm-path-mapping-guide {
    border-color: rgba(129, 140, 248, 0.28);
    background: linear-gradient(135deg, rgba(49, 46, 129, 0.25), rgba(30, 41, 59, 0.42));
}

.emby-strm-path-mapping-guide-title {
    margin-bottom: 5px;
    color: var(--primary);
    font-size: 0.86rem;
    font-weight: 750;
}

.emby-strm-path-mapping-guide-text {
    color: var(--text-sub);
    font-size: 0.84rem;
    line-height: 1.65;
}

.emby-strm-path-mapping-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.emby-strm-path-mapping-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 30px minmax(0, 1fr) 38px;
    gap: 10px;
    align-items: end;
    padding: 12px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 14px;
    background: rgba(248, 250, 252, 0.72);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

html[data-theme="dark"] .emby-strm-path-mapping-row {
    border-color: rgba(148, 163, 184, 0.18);
    background: rgba(15, 23, 42, 0.32);
}

.emby-strm-path-mapping-row:focus-within {
    border-color: rgba(99, 102, 241, 0.58);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
}

.emby-strm-path-mapping-row.is-incomplete {
    border-color: rgba(239, 68, 68, 0.62);
    background: rgba(254, 242, 242, 0.78);
}

html[data-theme="dark"] .emby-strm-path-mapping-row.is-incomplete {
    background: rgba(127, 29, 29, 0.2);
}

.emby-strm-path-mapping-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 6px;
}

.emby-strm-path-mapping-field-label {
    color: var(--text-sub);
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.25;
}

.emby-strm-path-mapping-input {
    min-width: 0;
    padding: 10px 12px;
}

.emby-strm-path-mapping-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    color: var(--primary);
    font-size: 1.25rem;
    font-weight: 700;
    user-select: none;
}

.emby-strm-path-mapping-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    min-height: 42px;
    padding: 0;
    border: 1px solid rgba(239, 68, 68, 0.18);
    border-radius: 11px;
    background: rgba(254, 226, 226, 0.76);
    color: #dc2626;
    cursor: pointer;
    font-size: 1.35rem;
    line-height: 1;
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.emby-strm-path-mapping-remove:hover {
    border-color: rgba(220, 38, 38, 0.34);
    background: #fee2e2;
    transform: translateY(-1px);
}

html[data-theme="dark"] .emby-strm-path-mapping-remove {
    border-color: rgba(248, 113, 113, 0.26);
    background: rgba(127, 29, 29, 0.34);
    color: #fca5a5;
}

.emby-strm-path-mapping-add {
    align-self: flex-start;
    padding: 9px 14px;
    border: 1px dashed rgba(99, 102, 241, 0.48);
    border-radius: 11px;
    background: rgba(238, 242, 255, 0.56);
    color: var(--primary);
    cursor: pointer;
    font-size: 0.86rem;
    font-weight: 700;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.emby-strm-path-mapping-add:hover {
    border-color: var(--primary);
    background: var(--primary-light);
    transform: translateY(-1px);
}

html[data-theme="dark"] .emby-strm-path-mapping-add {
    background: rgba(99, 102, 241, 0.1);
}

.emby-strm-path-mapping-empty {
    padding: 12px;
    border: 1px dashed rgba(148, 163, 184, 0.38);
    border-radius: 12px;
    color: var(--text-sub);
    font-size: 0.84rem;
    text-align: center;
}

.emby-strm-path-mapping-warning {
    padding: 10px 12px;
    border: 1px solid rgba(239, 68, 68, 0.46);
    border-radius: 10px;
    background: rgba(254, 226, 226, 0.72);
    color: #b91c1c;
    font-size: 0.84rem;
    font-weight: 650;
    line-height: 1.5;
}

html[data-theme="dark"] .emby-strm-path-mapping-warning {
    border-color: rgba(248, 113, 113, 0.54);
    background: rgba(127, 29, 29, 0.42);
    color: #fecaca;
}

/* 整理覆盖策略 - 发布组有序优先级 */
.release-group-priority-list {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: 8px;
    align-items: stretch;
}

.release-group-priority-card {
    cursor: grab;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.06), rgba(59, 130, 246, 0.04));
}

.release-group-priority-card:active,
.release-group-priority-card.is-dragging {
    cursor: grabbing;
}

.release-group-priority-card.is-dragging {
    opacity: 0.55;
    border-color: var(--primary);
    box-shadow: 0 8px 18px rgba(79, 70, 229, 0.18);
}

.release-group-priority-rank {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
}

.release-group-priority-drag-handle {
    flex: 0 0 auto;
    color: var(--text-muted);
    cursor: grab;
    font-size: 1.1rem;
    line-height: 1;
    user-select: none;
}

.release-group-priority-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
}

.release-group-priority-move {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(99, 102, 241, 0.25);
    border-radius: 8px;
    background: rgba(99, 102, 241, 0.08);
    color: var(--primary);
    cursor: pointer;
    font-size: 0.95rem;
    font-weight: 800;
}

.release-group-priority-move:hover:not(:disabled) {
    border-color: var(--primary);
    background: var(--primary-light);
}

.release-group-priority-move:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.release-group-priority-hint {
    color: var(--text-muted);
    font-size: 0.82rem;
    line-height: 1.5;
}

.release-group-priority-warning {
    padding: 9px 11px;
    border: 1px solid rgba(239, 68, 68, 0.45);
    border-radius: 10px;
    background: rgba(254, 226, 226, 0.7);
    color: #b91c1c;
    font-size: 0.82rem;
    font-weight: 700;
}

html[data-theme="dark"] .release-group-priority-warning {
    background: rgba(127, 29, 29, 0.35);
    color: #fecaca;
}

.release-group-priority-list.release-group-priority-invalid {
    padding: 6px;
    border: 1px solid rgba(239, 68, 68, 0.55);
    border-radius: 12px;
}

@media (max-width: 640px) {
    .release-group-priority-card {
        gap: 6px;
        padding: 9px 8px;
    }

    .release-group-priority-drag-handle {
        display: none;
    }

    .release-group-priority-actions {
        gap: 4px;
    }
}

/* 网盘登录面板 */
.qr115-panel {
    margin-top: 14px;
    padding: 14px;
    border: 1px dashed rgba(99, 102, 241, 0.45);
    border-radius: 12px;
    background: rgba(99, 102, 241, 0.06);
}

html[data-theme="dark"] .qr115-panel {
    border-color: rgba(129, 140, 248, 0.40);
    background: rgba(99, 102, 241, 0.10);
}

.pan123-captcha-anchor {
    position: relative;
    width: 100%;
    min-height: 1px;
    overflow: visible;
}

.qr115-panel-title {
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 10px;
}

.pikpak-storage-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 12px;
}

.pikpak-storage-item {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    border: 1px solid rgba(99, 102, 241, 0.18);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.62);
}

.pikpak-storage-label {
    color: var(--text-sub);
    font-size: 0.76rem;
    line-height: 1.35;
}

.pikpak-storage-value {
    overflow: hidden;
    color: var(--text-main);
    font-size: 0.94rem;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pikpak-storage-overview.is-loading .pikpak-storage-value,
.pikpak-storage-overview.is-empty .pikpak-storage-value {
    color: var(--text-sub);
    font-weight: 600;
}

.pikpak-storage-overview.is-error .pikpak-storage-item {
    border-color: rgba(245, 158, 11, 0.28);
    background: rgba(245, 158, 11, 0.08);
}

.pikpak-storage-overview.is-error .pikpak-storage-value {
    color: #b45309;
}

html[data-theme="dark"] .pikpak-storage-item {
    border-color: rgba(129, 140, 248, 0.24);
    background: rgba(15, 23, 42, 0.32);
}

html[data-theme="dark"] .pikpak-storage-overview.is-error .pikpak-storage-item {
    border-color: rgba(251, 191, 36, 0.30);
    background: rgba(245, 158, 11, 0.12);
}

html[data-theme="dark"] .pikpak-storage-overview.is-error .pikpak-storage-value {
    color: #fcd34d;
}

@media (max-width: 560px) {
    .pikpak-storage-overview {
        grid-template-columns: 1fr;
    }
}

.qr115-warning {
    margin: 0 0 12px;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid rgba(245, 158, 11, 0.35);
    background: rgba(245, 158, 11, 0.10);
    color: #92400e;
    font-size: 0.84rem;
    line-height: 1.45;
}

.qr115-warning-danger {
    border-color: rgba(239, 68, 68, 0.35);
    background: rgba(239, 68, 68, 0.10);
    color: #b91c1c;
}

html[data-theme="dark"] .qr115-warning {
    border-color: rgba(251, 191, 36, 0.35);
    background: rgba(251, 191, 36, 0.12);
    color: #fcd34d;
}

html[data-theme="dark"] .qr115-warning-danger {
    border-color: rgba(248, 113, 113, 0.38);
    background: rgba(248, 113, 113, 0.12);
    color: #fca5a5;
}

.qr115-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
}

.qr115-select {
    min-width: 240px;
    flex: 1;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: var(--bg-card);
    color: var(--text-main);
}

.qr115-action-btn,
.qr115-stop-btn {
    border: none;
    border-radius: 10px;
    padding: 10px 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.qr115-action-btn {
    background: var(--primary);
    color: #fff;
}

.qr115-action-btn:hover:not(:disabled) {
    background: var(--primary-hover);
}

.qr115-stop-btn {
    background: #f3f4f6;
    color: #4b5563;
    border: 1px solid #e5e7eb;
}

.qr115-stop-btn:hover:not(:disabled) {
    background: #e5e7eb;
}

.qr115-action-btn:disabled,
.qr115-stop-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

html[data-theme="dark"] .qr115-stop-btn {
    background: rgba(148, 163, 184, 0.12);
    color: rgba(229, 231, 235, 0.85);
    border-color: rgba(148, 163, 184, 0.2);
}

.qr115-qrcode-wrap {
    width: 220px;
    max-width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.qr115-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.qr115-placeholder {
    text-align: center;
    color: #6b7280;
    padding: 10px;
    line-height: 1.4;
    font-size: 0.86rem;
}

.qr115-status {
    margin-top: 10px;
    font-size: 0.9rem;
    color: #6b7280;
}

.qr115-status.success {
    color: #059669;
    font-weight: 600;
}

.qr115-status.error {
    color: #dc2626;
}

body.pikpak-captcha-modal-open {
    overflow: hidden;
}

.pikpak-captcha-modal-root[hidden] {
    display: none !important;
}

.pikpak-captcha-actions[hidden] {
    display: none !important;
}

.pikpak-captcha-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.pikpak-captcha-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 2001;
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: min(760px, calc(100vw - 32px));
    height: min(780px, calc(100vh - 32px));
    min-height: 520px;
    padding: 18px;
    overflow: hidden;
    color: var(--text-main);
    background: var(--bg-card);
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 20px;
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.32);
    transform: translate(-50%, -50%);
}

.pikpak-captcha-modal-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
    min-height: 0;
}

.pikpak-captcha-modal-status {
    flex: 0 0 auto;
    color: var(--text-sub);
    font-size: 0.84rem;
    line-height: 1.5;
}

.pikpak-captcha-frame {
    display: block;
    flex: 1;
    width: 100%;
    min-height: 400px;
    background: #fff;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 14px;
}

.pikpak-captcha-modal-footer,
.pikpak-captcha-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.pikpak-captcha-modal-footer {
    justify-content: space-between;
    color: var(--text-sub);
    font-size: 0.82rem;
    line-height: 1.5;
}

.pikpak-captcha-actions {
    flex-wrap: wrap;
}

.pikpak-captcha-inline-button,
.pikpak-captcha-link-button {
    flex: 0 0 auto;
    padding: 7px 11px;
    font-size: 0.82rem;
}

.pikpak-captcha-link-button,
.pikpak-captcha-inline-link {
    text-decoration: none;
}

.pikpak-captcha-inline-link {
    color: var(--primary);
    font-weight: 600;
}

.pikpak-captcha-inline-link:hover {
    text-decoration: underline;
}

html[data-theme="dark"] .pikpak-captcha-modal-overlay {
    background: rgba(2, 6, 23, 0.78);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

html[data-theme="dark"] .pikpak-captcha-modal {
    border-color: rgba(148, 163, 184, 0.2);
    box-shadow: 0 28px 80px rgba(2, 6, 23, 0.58);
}

@media (max-width: 640px) {
    .pikpak-captcha-modal {
        top: 6px;
        right: 6px;
        bottom: 6px;
        left: 6px;
        width: auto;
        height: auto;
        min-height: 0;
        padding: 13px;
        border-radius: 16px;
        transform: none;
    }

    .pikpak-captcha-frame {
        min-height: 300px;
        border-radius: 12px;
    }

    .pikpak-captcha-modal-footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

.qr115-countdown {
    margin-top: 4px;
    font-size: 0.82rem;
    color: #9ca3af;
}

/* 开关控件 */
.switch-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    background: #f9fafb;
    border: 1px solid #f3f4f6;
    border-radius: var(--radius-m);
    cursor: pointer;
    transition: border-color 0.2s;
}

html[data-theme="dark"] .switch-wrapper {
    background: rgba(148, 163, 184, 0.10);
    border-color: rgba(148, 163, 184, 0.18);
}

.switch-wrapper:hover {
    border-color: #e5e7eb;
    background: #f3f4f6;
}

html[data-theme="dark"] .switch-wrapper:hover {
    background: rgba(148, 163, 184, 0.15);
    border-color: rgba(148, 163, 184, 0.25);
}

.switch-label {
    font-size: 0.95rem;
    font-weight: 500;
    color: #4b5563;
}

.switch-label.on {
    color: var(--primary);
    font-weight: 600;
}

.switch-label.is-danger.on {
    color: #dc2626;
}

html[data-theme="dark"] .switch-label.is-danger.on {
    color: #fca5a5;
}

.switch-box {
    position: relative;
    width: 44px;
    height: 24px;
}

.switch-box input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #d1d5db;
    border-radius: 34px;
    transition: .3s;
}

.slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    border-radius: 50%;
    transition: .3s;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

input:checked+.slider {
    background-color: var(--primary);
}

input:checked+.slider:before {
    transform: translateX(20px);
}

/* 移动端 */
.menu-toggle {
    display: none;
    border: none;
    background: none;
    font-size: 1.5rem;
    color: #374151;
    padding: 4px;
}

html[data-theme="dark"] .menu-toggle {
    color: rgba(229, 231, 235, 0.85);
}

.overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(3px);
    z-index: 45;
    opacity: 0;
    visibility: hidden;
    transition: 0.3s;
}

.overlay.active {
    opacity: 1;
    visibility: visible;
}

@media (max-width: 768px) {
    .app-container {
        height: 100dvh;
    }

    html {
        scroll-padding-top: 0;
    }

    input,
    select,
    textarea,
    .form-input,
    .kv-key-input,
    .kv-value-input,
    .kv-target-input,
    .kv-blacklist-input,
    .kv-note-input,
    .vl-input,
    .proxy-settings-input,
    .transfer-status-select,
    .transfer-result-input,
    .emby-setup-input,
    .emby-user-select,
    .qr115-select,
    .vf-card-input,
    .vf-card-select,
    .vf-textarea {
        font-size: 16px !important;
        scroll-margin-top: 0;
    }

    .sidebar {
        position: fixed;
        left: -250px;
        height: 100%;
        box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
    }

    .sidebar.open {
        transform: translateX(250px);
    }

    .menu-toggle {
        display: block;
    }

    .top-bar {
        padding: 8px 16px;
        height: auto;
        min-height: 56px;
        flex-wrap: wrap;
        gap: 8px;
        position: relative;
        top: auto;
    }

    .global-alert-strip {
        padding: 0 16px;
    }

    .global-alert-strip.visible {
        padding-top: 12px;
    }

    .page-title {
        width: 100%;
        order: 1;
        margin-bottom: 0;
    }

    .top-bar-right {
        width: 100%;
        order: 2;
        display: flex;
        gap: 8px;
        align-items: center;
        flex-wrap: nowrap;
    }

    .search-wrapper {
        flex: 1;
        min-width: 0;
    }

    .search-input {
        width: 100%;
        max-width: none;
        padding: 8px 12px 8px 36px;
    }

    .search-input:focus {
        width: 100%;
    }

    .save-btn {
        padding: 8px 16px;
        font-size: 0.85rem;
        flex-shrink: 0;
        white-space: nowrap;
    }

    .content-area {
        padding: 16px;
        scroll-padding-top: 0;
        padding-bottom: calc(env(safe-area-inset-bottom) + 24px);
    }

    #env-form,
    #env-sections,
    .config-group,
    .form-item,
    .value-list-card,
    .key-value-card,
    .checkbox-card {
        scroll-margin-top: 0;
    }

    .config-group {
        padding: 20px;
    }

    .config-group-structured {
        padding: 16px;
    }

    .config-subgroup {
        padding: 16px;
        border-radius: 18px;
    }

    .config-subgroup-head {
        gap: 12px;
        margin-bottom: 14px;
        padding-bottom: 12px;
        flex-wrap: wrap;
    }

    .config-subgroup-toggle {
        margin-left: 0;
        align-self: flex-start;
    }

    .config-subgroup-icon {
        width: 38px;
        height: 38px;
        border-radius: 12px;
    }

    .config-group-structured .form-item {
        padding: 14px;
        border-radius: 16px;
    }

    /* 移动端卡片网格单列显示 */
    .key-value-card-list,
    .value-list-card-list {
        grid-template-columns: 1fr;
    }

    .emby-strm-path-mapping-row {
        grid-template-columns: minmax(0, 1fr) 38px;
        gap: 8px 10px;
    }

    .emby-strm-path-mapping-field-local {
        grid-column: 1;
        grid-row: 1;
    }

    .emby-strm-path-mapping-arrow {
        grid-column: 1;
        grid-row: 2;
        justify-content: flex-start;
        min-height: 14px;
        padding-left: 10px;
        transform: rotate(90deg);
    }

    .emby-strm-path-mapping-field-emby {
        grid-column: 1;
        grid-row: 3;
    }

    .emby-strm-path-mapping-remove {
        grid-column: 2;
        grid-row: 1 / span 3;
        align-self: center;
    }
}

/* 日志查看器样式 */
.log-button-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 12px;
    border: 1px solid rgba(226, 232, 240, 0.86);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.log-button-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.log-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 16px;
    border: 1px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.log-action-btn-primary {
    background: var(--primary);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(99, 102, 241, 0.22);
}

.log-action-btn-primary:hover {
    background: var(--primary);
}

.log-action-btn-secondary {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155;
}

.log-action-btn-secondary:hover {
    background: var(--primary-light);
    border-color: rgba(0, 113, 227, 0.4);
    color: #3730a3;
}

.toggle-log-refresh-btn.is-paused {
    background: #ecfdf5;
    border-color: #86efac;
    color: #166534;
}

.toggle-log-refresh-btn.is-paused:hover {
    background: #dcfce7;
    border-color: #4ade80;
}

.log-viewer-container {
    position: relative;
    background: #ffffff;
    border-radius: var(--radius-l);
    padding: 10px;
    border: 1px solid rgba(226, 232, 240, 0.92);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

html:not([data-theme="dark"]) .log-viewer-container {
    background: #ffffff;
}

.log-loading,
.log-error {
    padding: 20px;
    text-align: center;
    color: var(--text-sub);
    font-size: 0.9rem;
}

.log-error {
    color: #dc2626;
}

.log-timeline,
.log-content {
    background: #ffffff;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 12px;
    font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
    font-size: 0.82rem;
    line-height: 1.5;
    overflow-x: hidden;
    overflow-y: auto;
    max-height: calc(100vh - 235px);
    margin: 0;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(148, 163, 184, 0.45) transparent;
}

.log-content {
    color: #1f2937;
    padding: 20px;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.log-timeline {
    padding: 8px;
}

.log-tail-button {
    position: absolute;
    right: 24px;
    bottom: 22px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 14px;
    border: 1px solid rgba(79, 70, 229, 0.32);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    color: #4338ca;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.16s ease, transform 0.16s ease, background 0.16s ease, border-color 0.16s ease;
}

.log-tail-button:hover {
    background: var(--primary-light);
    border-color: rgba(79, 70, 229, 0.56);
}

.log-tail-button.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.log-tail-button[hidden] {
    display: none;
}

.log-entry {
    display: grid;
    grid-template-columns: 76px minmax(72px, 132px) 64px minmax(0, 1fr);
    align-items: start;
    gap: 6px;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
    padding: 7px 10px;
    background: transparent;
    transition: background 0.12s ease;
}

.log-entry:first-child {
    border-top-left-radius: 9px;
    border-top-right-radius: 9px;
}

.log-entry:last-child {
    border-bottom: none;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
}

.log-entry + .log-entry {
    margin-top: 0;
}

.log-entry:hover {
    background: rgba(241, 245, 249, 0.9);
}

.log-entry-error {
    background: rgba(254, 242, 242, 0.88);
}

.log-entry-warning {
    background: rgba(255, 251, 235, 0.9);
}

.log-entry-meta {
    display: contents;
}

.log-entry-time {
    color: #64748b;
    font-size: 0.74rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    padding-top: 2px;
}

.log-entry-module,
.log-entry-level {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 20px;
    border-radius: 6px;
    padding: 0 7px;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
}

.log-entry-module {
    background: var(--primary-light);
    color: #4338ca;
    width: 100%;
    min-width: 0;
    line-height: 1.2;
    overflow: hidden;
    overflow-wrap: normal;
    text-overflow: ellipsis;
    text-align: center;
    white-space: nowrap;
    word-break: normal;
}

.log-entry-module-strm {
    background: #ecfdf5;
    color: #047857;
}

.log-entry-module-transfer {
    background: #eff6ff;
    color: #1d4ed8;
}

.log-entry-module-organize {
    background: #faf5ff;
    color: #7e22ce;
}

.log-entry-module-web {
    background: #f0f9ff;
    color: #0369a1;
}

.log-entry-module-emby302 {
    background: #fff7ed;
    color: #c2410c;
}

.log-entry-module-emby {
    background: #f0f9ff;
    color: #0369a1;
}

.log-entry-module-notify {
    background: #fdf2f8;
    color: #be185d;
}

.log-entry-module-system {
    background: #f1f5f9;
    color: #475569;
}

.log-entry-module-other {
    background: #f1f5f9;
    color: #475569;
}

.log-entry-level-info {
    background: #e2e8f0;
    color: #334155;
}

.log-entry-level-warning {
    background: #fef3c7;
    color: #92400e;
}

.log-entry-level-error,
.log-entry-level-critical {
    background: #fee2e2;
    color: #b91c1c;
}

.log-entry-level-debug {
    background: #f1f5f9;
    color: #64748b;
}

.log-entry-message {
    color: #1f2937;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    min-width: 0;
}

/* WebKit浏览器（Chrome、Safari、Edge）滚动条样式 */
.log-timeline::-webkit-scrollbar,
.log-content::-webkit-scrollbar {
    width: 12px;
    /* 滚动条宽度 */
    height: 12px;
    /* 水平滚动条高度 */
}

.log-timeline::-webkit-scrollbar-track,
.log-content::-webkit-scrollbar-track {
    background: #f1f5f9;
    /* 滚动条轨道背景 */
    border-radius: 6px;
}

.log-timeline::-webkit-scrollbar-thumb,
.log-content::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    /* 滚动条滑块颜色 */
    border-radius: 6px;
    border: 2px solid #f1f5f9;
    /* 增加视觉边界 */
    min-height: 40px;
    /* 最小高度，便于拖动 */
}

.log-timeline::-webkit-scrollbar-thumb:hover,
.log-content::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
    /* 悬停时颜色 */
}

html[data-theme="dark"] .log-button-bar {
    background: rgba(15, 23, 42, 0.76);
    border-color: rgba(148, 163, 184, 0.14);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.2);
}

html[data-theme="dark"] .log-action-btn-secondary {
    background: rgba(30, 41, 59, 0.72);
    border-color: rgba(148, 163, 184, 0.24);
    color: #cbd5e1;
}

html[data-theme="dark"] .log-action-btn-secondary:hover {
    background: rgba(67, 56, 202, 0.24);
    border-color: rgba(129, 140, 248, 0.45);
    color: #e0e7ff;
}

html[data-theme="dark"] .toggle-log-refresh-btn.is-paused {
    background: rgba(22, 101, 52, 0.24);
    border-color: rgba(74, 222, 128, 0.4);
    color: #bbf7d0;
}

html[data-theme="dark"] .toggle-log-refresh-btn.is-paused:hover {
    background: rgba(22, 163, 74, 0.28);
    border-color: rgba(134, 239, 172, 0.52);
}

html[data-theme="dark"] .log-viewer-container {
    background: #0f172a;
    border-color: rgba(148, 163, 184, 0.14);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.24);
}

html[data-theme="dark"] .log-timeline,
html[data-theme="dark"] .log-content {
    background: #0b1120;
    border-color: rgba(148, 163, 184, 0.16);
    scrollbar-color: #475569 #1e293b;
}

html[data-theme="dark"] .log-tail-button {
    background: rgba(30, 41, 59, 0.94);
    border-color: rgba(129, 140, 248, 0.36);
    color: rgba(0, 113, 227, 0.25);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.32);
}

html[data-theme="dark"] .log-tail-button:hover {
    background: rgba(67, 56, 202, 0.34);
    border-color: rgba(165, 180, 252, 0.58);
}

html[data-theme="dark"] .log-content,
html[data-theme="dark"] .log-entry-message {
    color: #e5e7eb;
}

html[data-theme="dark"] .log-entry {
    border-bottom-color: rgba(148, 163, 184, 0.12);
    background: transparent;
}

html[data-theme="dark"] .log-entry:hover {
    background: rgba(30, 41, 59, 0.62);
}

html[data-theme="dark"] .log-entry-error {
    background: rgba(127, 29, 29, 0.24);
}

html[data-theme="dark"] .log-entry-warning {
    background: rgba(120, 53, 15, 0.22);
}

html[data-theme="dark"] .log-entry-time {
    color: #94a3b8;
}

html[data-theme="dark"] .log-entry-module {
    background: rgba(99, 102, 241, 0.18);
    color: rgba(0, 113, 227, 0.25);
}

html[data-theme="dark"] .log-entry-module-strm {
    background: rgba(16, 185, 129, 0.16);
    color: #6ee7b7;
}

html[data-theme="dark"] .log-entry-module-transfer {
    background: rgba(59, 130, 246, 0.16);
    color: #93c5fd;
}

html[data-theme="dark"] .log-entry-module-organize {
    background: rgba(168, 85, 247, 0.16);
    color: #d8b4fe;
}

html[data-theme="dark"] .log-entry-module-web {
    background: rgba(14, 165, 233, 0.16);
    color: #7dd3fc;
}

html[data-theme="dark"] .log-entry-module-emby302 {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d;
}

html[data-theme="dark"] .log-entry-module-emby {
    background: rgba(14, 165, 233, 0.16);
    color: #7dd3fc;
}

html[data-theme="dark"] .log-entry-module-notify {
    background: rgba(236, 72, 153, 0.16);
    color: #f9a8d4;
}

html[data-theme="dark"] .log-entry-module-system {
    background: rgba(148, 163, 184, 0.14);
    color: #cbd5e1;
}

html[data-theme="dark"] .log-entry-module-other,
html[data-theme="dark"] .log-entry-level-info,
html[data-theme="dark"] .log-entry-level-debug {
    background: rgba(148, 163, 184, 0.14);
    color: #cbd5e1;
}

html[data-theme="dark"] .log-timeline::-webkit-scrollbar-track,
html[data-theme="dark"] .log-content::-webkit-scrollbar-track {
    background: #1e293b;
}

html[data-theme="dark"] .log-timeline::-webkit-scrollbar-thumb,
html[data-theme="dark"] .log-content::-webkit-scrollbar-thumb {
    background: #475569;
    border-color: #1e293b;
}

@media (max-width: 768px) {
    .log-button-bar {
        align-items: stretch;
    }

    .log-button-actions {
        width: 100%;
    }

    .log-action-btn {
        flex: 1 1 150px;
    }

    .log-entry {
        grid-template-columns: 1fr;
        gap: 6px;
        padding: 10px;
    }

    .log-entry-meta {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 7px;
    }

    .log-timeline,
    .log-content {
        max-height: calc(100vh - 260px);
    }
}

/* 转存历史 */
.transfer-history-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}

.transfer-history-title-wrap {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.transfer-history-title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text-main);
}

.transfer-history-tip {
    font-size: 0.86rem;
    color: var(--text-sub);
}

.transfer-history-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.organize-history-actions-row {
    margin: -6px 0 18px;
}

.transfer-history-refresh-btn {
    border: none;
    background: var(--primary-gradient);
    color: #fff;
    border-radius: var(--radius-sm);
    font-size: 0.84rem;
    font-weight: 600;
    padding: 7px 14px;
    cursor: pointer;
    box-shadow: 0 4px 12px var(--primary-glow);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
}

.transfer-history-refresh-btn:hover:not(:disabled) {
    transform: translateY(-1.5px);
    box-shadow: 0 6px 18px var(--primary-glow);
}

.transfer-history-refresh-btn:active:not(:disabled) {
    transform: scale(0.97);
}

html[data-theme="dark"] .transfer-history-refresh-btn {
    color: #030712;
    font-weight: 700;
}

.transfer-history-recognize-btn {
    background: var(--primary-gradient);
    box-shadow: 0 4px 14px var(--primary-glow);
}

.transfer-history-recognize-btn:hover:not(:disabled) {
    transform: translateY(-1.5px);
    box-shadow: 0 8px 22px var(--primary-glow);
}

.transfer-history-recognize-btn:active:not(:disabled) {
    transform: scale(0.97);
}

.transfer-history-danger-btn {
    background: linear-gradient(135deg, #f87171, #ef4444);
    box-shadow: 0 4px 14px rgba(239, 68, 68, 0.25);
    color: #fff;
}

.transfer-history-danger-btn:hover:not(:disabled) {
    background: linear-gradient(135deg, #ef4444, #dc2626);
    transform: translateY(-1.5px);
    box-shadow: 0 6px 18px rgba(239, 68, 68, 0.35);
}

.transfer-history-danger-btn:active:not(:disabled) {
    transform: scale(0.97);
}

.organize-stop-btn {
    background: linear-gradient(135deg, #f87171, #dc2626);
    box-shadow: 0 4px 14px rgba(220, 38, 38, 0.25);
    color: #fff;
}

.organize-stop-btn:hover:not(:disabled) {
    background: linear-gradient(135deg, #ef4444, #b91c1c);
    transform: translateY(-1.5px);
    box-shadow: 0 6px 18px rgba(220, 38, 38, 0.35);
}

.organize-stop-btn:active:not(:disabled) {
    transform: scale(0.97);
}

html[data-theme="dark"] .organize-stop-btn {
    box-shadow: 0 10px 24px rgba(248, 113, 113, 0.28);
}

.transfer-history-refresh-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.transfer-history-updated {
    font-size: 0.8rem;
    color: var(--text-sub);
}

.transfer-history-updated.is-busy {
    color: var(--primary);
}

.transfer-history-updated.is-success {
    color: #059669;
}

.transfer-history-updated.is-error {
    color: #dc2626;
}

/* 实用工具 */
.utility-tools-page {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.utility-tools-header {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.utility-tools-title {
    margin: 0;
    font-size: 1.16rem;
    font-weight: 700;
    color: var(--text-main);
}

.utility-tools-desc {
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--text-sub);
}

.utility-tools-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

@media (max-width: 1400px) {
    .utility-tools-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1080px) {
    .utility-tools-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .utility-tools-grid {
        grid-template-columns: 1fr;
    }
}

.utility-tool-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.08) 0%, rgba(99, 102, 241, 0.02) 100%), var(--bg-card);
    text-align: left;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.utility-tool-card:hover {
    transform: translateY(-2px);
    border-color: rgba(99, 102, 241, 0.34);
    box-shadow: 0 16px 28px rgba(15, 23, 42, 0.08);
}

.utility-tool-card:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.22);
}

.utility-tool-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: rgba(99, 102, 241, 0.12);
    font-size: 1.4rem;
}

.utility-tool-card-label {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-main);
}

.utility-tool-card-desc {
    font-size: 0.85rem;
    line-height: 1.65;
    color: var(--text-sub);
}

.utility-tool-card-meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(99, 102, 241, 0.1);
    color: var(--primary);
    font-size: 0.78rem;
    font-weight: 600;
}

.utility-tool-card-emby {
    background: linear-gradient(180deg, rgba(16, 185, 129, 0.12) 0%, rgba(16, 185, 129, 0.03) 100%), var(--bg-card);
}

.utility-tool-card-ai {
    background: linear-gradient(180deg, rgba(14, 165, 233, 0.12) 0%, rgba(14, 165, 233, 0.03) 100%), var(--bg-card);
}

.utility-tool-card-tmdb-regex {
    background: linear-gradient(180deg, rgba(245, 158, 11, 0.14) 0%, rgba(245, 158, 11, 0.04) 100%), var(--bg-card);
}

.utility-tool-card-tmdb-settings {
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.12) 0%, rgba(99, 102, 241, 0.03) 100%), var(--bg-card);
}

.utility-tool-card-tmdb-settings .utility-tool-card-icon {
    background: rgba(99, 102, 241, 0.14);
}

.utility-tool-card-tmdb-regex .utility-tool-card-icon {
    background: rgba(245, 158, 11, 0.16);
}

.utility-tool-card-ai .utility-tool-card-icon {
    background: rgba(14, 165, 233, 0.14);
}

.utility-tool-card-emby .utility-tool-card-icon {
    background: rgba(16, 185, 129, 0.14);
}

.utility-tool-card-share-clean .utility-tool-card-icon {
    background: rgba(14, 165, 233, 0.14);
    color: #0284c7;
}

body.utility-modal-open {
    overflow: hidden;
}

.utility-modal-overlay[hidden],
.utility-modal[hidden] {
    display: none !important;
}

.utility-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 1200;
}

.utility-modal {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(980px, calc(100vw - 32px));
    max-height: min(88vh, 920px);
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-radius: 20px;
    background: var(--bg-card);
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.24);
    z-index: 1201;
    min-height: 0;
    overflow: hidden;
}

.utility-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
}

.utility-modal-title-wrap {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.utility-modal-title {
    margin: 0;
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--text-main);
}

.utility-modal-subtitle {
    font-size: 0.84rem;
    line-height: 1.6;
    color: var(--text-sub);
}

.utility-modal-close {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-radius: 12px;
    background: rgba(148, 163, 184, 0.08);
    color: var(--text-main);
    font-size: 1rem;
    cursor: pointer;
    transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.12s ease;
}

.utility-modal-close:hover {
    background: rgba(148, 163, 184, 0.14);
    border-color: rgba(148, 163, 184, 0.36);
}

.utility-modal-close:active {
    transform: scale(0.96);
}

.utility-modal-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.utility-ai-modal .utility-modal-body {
    overflow: auto;
    padding-right: 4px;
}

/* 命令调整弹窗：紧凑布局 */
#utility-bot-commands-modal .transfer-history-header {
    margin-bottom: 12px;
    gap: 10px;
}

#utility-bot-commands-modal .transfer-history-title-wrap {
    gap: 4px;
}

#utility-bot-commands-modal .transfer-history-title {
    font-size: 1rem;
}

#utility-bot-commands-modal .transfer-history-tip {
    font-size: 0.8rem;
}

#utility-bot-commands-modal .transfer-history-actions {
    gap: 8px;
}

#utility-bot-commands-modal .transfer-history-refresh-btn {
    font-size: 0.8rem;
    padding: 6px 10px;
}

#utility-bot-commands-modal .transfer-history-container {
    gap: 8px;
}

.utility-bot-commands-container {
    flex: 1;
    min-height: 0;
    overflow: auto;
    padding-right: 4px;
}

.utility-modal.utility-modal-wide {
    width: min(1120px, calc(100vw - 24px));
}

.utility-ai-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.utility-ai-status {
    flex: 1 1 280px;
    min-width: 0;
    font-size: 0.84rem;
    color: var(--text-sub);
    overflow-wrap: anywhere;
}

.utility-ai-status.success {
    color: #059669;
}

.utility-ai-status.error {
    color: #dc2626;
}

.utility-ai-status.info {
    color: var(--text-sub);
}

.utility-ai-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.utility-ai-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: rgba(148, 163, 184, 0.06);
}

.utility-ai-card-head {
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--text-main);
}

.utility-ai-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
}

.utility-ai-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.utility-ai-field-full {
    grid-column: 1 / -1;
}

.utility-ai-label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-sub);
}

.utility-ai-helper {
    font-size: 0.78rem;
    line-height: 1.65;
    color: var(--text-sub);
}

.utility-ai-helper code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.76rem;
}

.utility-ai-switch-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

.utility-ai-switch-row {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.62);
    color: var(--text-main);
    font-size: 0.86rem;
    line-height: 1.55;
    cursor: pointer;
}

.utility-ai-checkbox {
    width: 16px;
    height: 16px;
    accent-color: var(--primary);
    flex: 0 0 auto;
}

.utility-ai-prompt-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.utility-ai-textarea {
    min-height: 260px;
    resize: vertical;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    line-height: 1.6;
}

.utility-cover-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.utility-cover-meta {
    font-size: 0.82rem;
    line-height: 1.65;
    color: var(--text-sub);
}

.utility-cover-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.utility-cover-status {
    margin-top: -2px;
}

.utility-cover-status.success {
    color: #059669;
}

.utility-cover-status.error {
    color: #dc2626;
}

.utility-cover-status.info {
    color: var(--text-sub);
}

.utility-cover-form-grid {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: 14px;
    min-height: 0;
    flex: 1;
}

.utility-cover-form-block {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: rgba(148, 163, 184, 0.06);
}

.utility-cover-form-block-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-main);
}

.utility-cover-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.utility-cover-label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-sub);
}

.utility-cover-checkline {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.84rem;
    line-height: 1.5;
    color: var(--text-main);
    cursor: pointer;
    align-self: flex-start;
}

.utility-cover-check-field {
    gap: 8px;
    justify-content: flex-start;
}

.utility-cover-checkline input[type="checkbox"],
.utility-cover-checkline input[type="radio"] {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    margin: 0;
}

.utility-cover-checkline span {
    display: inline-block;
}

.utility-cover-check-field .utility-cover-helper {
    padding-left: 28px;
    margin-top: 2px;
}

.utility-cover-library-block {
    overflow: hidden;
}

.utility-cover-library-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.utility-cover-mini-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.utility-cover-server-head .utility-cover-mini-actions {
    margin-left: auto;
    justify-content: flex-end;
}

.utility-cover-mini-btn {
    border: 1px solid var(--border);
    background: rgba(148, 163, 184, 0.08);
    color: var(--text-main);
    border-radius: 10px;
    padding: 6px 10px;
    font-size: 0.8rem;
    cursor: pointer;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease;
}

.utility-cover-mini-btn:hover {
    background: rgba(148, 163, 184, 0.14);
    border-color: rgba(148, 163, 184, 0.34);
}

.utility-cover-mini-btn:active {
    transform: scale(0.98);
}

.utility-cover-mini-btn.utility-cover-mini-btn-accent {
    border-color: rgba(99, 102, 241, 0.28);
    background: rgba(99, 102, 241, 0.1);
    color: var(--primary);
}

.utility-cover-mini-btn.utility-cover-mini-btn-accent:hover {
    border-color: rgba(99, 102, 241, 0.42);
    background: rgba(99, 102, 241, 0.16);
}

.utility-cover-mini-btn.utility-cover-mini-btn-primary {
    border-color: rgba(79, 70, 229, 0.78);
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary) 100%);
    color: #fff;
    box-shadow: 0 10px 22px rgba(79, 70, 229, 0.18);
}

.utility-cover-mini-btn.utility-cover-mini-btn-primary:hover {
    border-color: rgba(67, 56, 202, 0.88);
    background: linear-gradient(135deg, #5b5ff6 0%, #4338ca 100%);
    box-shadow: 0 12px 26px rgba(79, 70, 229, 0.24);
}

.utility-tool-card-emby-clean {
    background: linear-gradient(135deg, rgba(254, 242, 242, 0.92) 0%, rgba(240, 253, 250, 0.96) 100%);
}

.utility-emby-metadata-cleaner-modal {
    height: min(90vh, 960px);
}

.utility-emby-metadata-cleaner-body {
    overflow: auto;
}

.utility-emby-metadata-cleaner-body .utility-cover-plugin-card {
    overflow: visible;
}

.utility-emby-cleaner-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
    flex-wrap: wrap;
    padding: 8px 4px 10px;
}

.utility-emby-cleaner-toolbar-main {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.utility-emby-cleaner-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.utility-emby-cleaner-path-row {
    display: flex;
    gap: 10px;
    padding: 16px 18px 8px;
    align-items: center;
}

.utility-emby-cleaner-path-row .form-input {
    width: 100%;
}

.utility-emby-metadata-cleaner-body .utility-cover-plugin-card > .utility-cover-helper {
    display: block;
    padding: 0 18px 18px;
    line-height: 1.8;
}

.utility-emby-cleaner-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.utility-emby-cleaner-stat-card {
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px 16px;
    background: rgba(99, 102, 241, 0.04);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.utility-emby-cleaner-stat-label {
    font-size: 0.8rem;
    color: var(--text-sub);
}

.utility-emby-cleaner-stat-card strong {
    font-size: 1.22rem;
    color: var(--text-main);
}

.utility-emby-cleaner-preview-list,
.utility-emby-cleaner-errors {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 320px;
    overflow: auto;
}

.utility-emby-cleaner-preview-item,
.utility-emby-cleaner-error-item,
.utility-emby-cleaner-empty {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px 14px;
    background: rgba(148, 163, 184, 0.06);
}

.utility-emby-cleaner-preview-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: flex-start;
}

.utility-emby-cleaner-preview-index {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(99, 102, 241, 0.12);
    color: var(--primary);
    font-weight: 700;
    font-size: 0.85rem;
}

.utility-emby-cleaner-preview-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.utility-emby-cleaner-preview-path {
    font-size: 0.9rem;
    word-break: break-all;
    color: var(--text-main);
}

.utility-emby-cleaner-preview-meta,
.utility-emby-cleaner-error-item {
    font-size: 0.78rem;
    color: var(--text-sub);
    word-break: break-all;
}

.utility-emby-cleaner-error-item {
    background: rgba(239, 68, 68, 0.05);
    border-color: rgba(239, 68, 68, 0.2);
}

.utility-share-strm-invalid-cleaner-modal {
    width: min(1240px, calc(100vw - 24px));
    height: min(92vh, 980px);
    padding: 22px 22px 20px;
}

.utility-share-clean-body {
    overflow: auto;
    padding: 4px 8px 10px 2px;
}

.utility-share-clean-layout {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.utility-share-clean-config-card,
.utility-share-clean-progress-card,
.utility-share-clean-history-card,
.utility-share-clean-detail-card {
    padding: 18px 18px 16px;
}

.utility-share-clean-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
    flex-wrap: wrap;
    padding: 8px 6px 14px;
}

.utility-share-clean-toolbar-main {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    max-width: 760px;
}

.utility-share-clean-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.utility-share-clean-config-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.utility-share-clean-path-row {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 2px 0;
}

.utility-share-clean-path-row .form-input {
    width: 100%;
}

.utility-share-clean-hidden-field {
    display: none !important;
}

.utility-share-clean-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    padding-top: 4px;
}

.utility-share-clean-stat-card {
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 16px 18px;
    background: rgba(34, 197, 94, 0.05);
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 92px;
    justify-content: center;
}

.utility-share-clean-stat-card span {
    font-size: 0.8rem;
    color: var(--text-sub);
    line-height: 1.5;
}

.utility-share-clean-stat-card strong {
    font-size: 1.24rem;
    color: var(--text-main);
}

.utility-share-clean-log-list,
.utility-share-clean-history-list,
.utility-share-clean-detail-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.utility-share-clean-log-list {
    max-height: 240px;
    overflow: auto;
}

.utility-share-clean-log-item,
.utility-share-clean-history-item,
.utility-share-clean-detail-item,
.utility-share-clean-detail-subitem,
.utility-share-clean-detail-summary {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 18px;
    background: rgba(148, 163, 184, 0.06);
}

.utility-share-clean-log-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.utility-share-clean-log-item.is-error {
    border-color: rgba(239, 68, 68, 0.2);
    background: rgba(239, 68, 68, 0.05);
}

.utility-share-clean-log-item.is-warning {
    border-color: rgba(245, 158, 11, 0.24);
    background: rgba(245, 158, 11, 0.06);
}

.utility-share-clean-log-time,
.utility-share-clean-history-meta,
.utility-share-clean-detail-meta {
    font-size: 0.78rem;
    color: var(--text-sub);
    word-break: break-all;
    line-height: 1.7;
}

.utility-share-clean-log-text,
.utility-share-clean-history-message {
    font-size: 0.84rem;
    color: var(--text-main);
    line-height: 1.8;
    word-break: break-word;
}

.utility-share-clean-history-toolbar {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    padding: 4px 0 6px;
}

.utility-share-clean-history-toolbar .form-input {
    flex: 1 1 220px;
}

.utility-share-clean-history-item {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.utility-share-clean-history-item-head,
.utility-share-clean-detail-item-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.utility-share-clean-history-item.is-success {
    border-color: rgba(16, 185, 129, 0.2);
}

.utility-share-clean-history-item.is-error,
.utility-share-clean-detail-item.is-danger {
    border-color: rgba(239, 68, 68, 0.2);
    background: rgba(239, 68, 68, 0.05);
}

.utility-share-clean-history-item.is-partial {
    border-color: rgba(245, 158, 11, 0.24);
    background: rgba(245, 158, 11, 0.06);
}

.utility-share-clean-detail-wrap {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.utility-share-clean-detail-section {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.utility-share-clean-detail-summary,
.utility-share-clean-detail-item,
.utility-share-clean-detail-subitem {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.45) inset;
}

.utility-share-clean-detail-item strong,
.utility-share-clean-history-item-title {
    font-size: 0.96rem;
    line-height: 1.6;
    color: var(--text-main);
}

.utility-share-clean-detail-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(99, 102, 241, 0.1);
    color: var(--primary);
    font-size: 0.76rem;
    font-weight: 700;
}

.utility-cover-library-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    flex: 1 1 auto;
    min-height: 320px;
    max-height: 420px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    padding-right: 6px;
    scrollbar-gutter: stable;
    align-content: start;
}

.utility-cover-library-list .log-loading,
.utility-cover-library-list .log-error {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    text-align: center;
    color: var(--text-sub);
    line-height: 1.7;
    padding: 16px;
}

.utility-cover-library-item {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--bg-card);
    cursor: pointer;
}

.utility-cover-library-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 20px;
    padding-top: 2px;
}

.utility-cover-library-item input {
    margin: 0;
}

.utility-cover-library-main {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.utility-cover-library-name-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.utility-cover-library-name {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
    word-break: break-word;
}

.utility-cover-library-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(99, 102, 241, 0.1);
    color: var(--primary);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
}

.utility-cover-library-meta {
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--text-sub);
    word-break: break-word;
}

.utility-cover-result-list[hidden] {
    display: none !important;
}

.utility-cover-result-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 180px;
    overflow: auto;
    padding-right: 4px;
}

.utility-cover-result-item {
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-left-width: 4px;
    border-radius: 12px;
    background: rgba(148, 163, 184, 0.06);
}

.utility-cover-result-item.success {
    border-left-color: #10b981;
}

.utility-cover-result-item.error {
    border-left-color: #ef4444;
}

.utility-cover-plugin-modal {
    height: min(92vh, 1100px);
    max-height: min(92vh, 1100px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
}

.utility-cover-plugin-modal .utility-modal-body {
    overflow: visible;
    padding-right: 0;
}

.utility-cover-plugin-body {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    min-height: 0;
    min-width: 0;
    gap: 14px;
    overflow: visible;
    padding-right: 0;
}

.utility-cover-plugin-modal::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.utility-cover-plugin-modal::-webkit-scrollbar-track {
    background: rgba(148, 163, 184, 0.08);
    border-radius: 999px;
}

.utility-cover-plugin-modal::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.38);
    border-radius: 999px;
}

.utility-cover-plugin-modal::-webkit-scrollbar-thumb:hover {
    background: rgba(148, 163, 184, 0.54);
}

.utility-cover-plugin-body::-webkit-scrollbar,
.utility-cover-library-list::-webkit-scrollbar,
.utility-cover-result-list::-webkit-scrollbar,
.utility-cover-code-editor::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.utility-cover-plugin-body::-webkit-scrollbar-track,
.utility-cover-library-list::-webkit-scrollbar-track,
.utility-cover-result-list::-webkit-scrollbar-track,
.utility-cover-code-editor::-webkit-scrollbar-track {
    background: rgba(148, 163, 184, 0.08);
    border-radius: 999px;
}

.utility-cover-plugin-body::-webkit-scrollbar-thumb,
.utility-cover-library-list::-webkit-scrollbar-thumb,
.utility-cover-result-list::-webkit-scrollbar-thumb,
.utility-cover-code-editor::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.38);
    border-radius: 999px;
}

.utility-cover-plugin-body::-webkit-scrollbar-thumb:hover,
.utility-cover-library-list::-webkit-scrollbar-thumb:hover,
.utility-cover-result-list::-webkit-scrollbar-thumb:hover,
.utility-cover-code-editor::-webkit-scrollbar-thumb:hover {
    background: rgba(148, 163, 184, 0.54);
}

.utility-cover-plugin-card {
    border: 1px solid var(--border);
    border-radius: 18px;
    background: rgba(148, 163, 184, 0.05);
    overflow: hidden;
}

.utility-cover-plugin-section-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 18px;
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--text-main);
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.utility-cover-plugin-section-icon {
    font-size: 1.18rem;
}

.utility-cover-basic-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
    padding: 18px;
}

.utility-cover-basic-grid > .utility-cover-field {
    grid-column: span 4;
}

.utility-cover-basic-grid > .utility-cover-field.utility-cover-field-full {
    grid-column: 1 / -1;
}

.utility-cover-field,
.utility-cover-switch-item,
.utility-cover-field-full,
.utility-cover-plugin-card,
.utility-cover-subsection,
.utility-cover-tab-panel,
.utility-cover-style-card,
.utility-cover-library-item,
.utility-cover-library-main {
    min-width: 0;
}

.utility-cover-field .form-input,
.utility-cover-field input:not([type="checkbox"]):not([type="radio"]),
.utility-cover-field select,
.utility-cover-code-editor {
    width: 100%;
    box-sizing: border-box;
}

.utility-cover-basic-grid > .utility-cover-field {
    grid-column: span 4;
}

.utility-cover-switch-item {
    grid-column: span 3;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 0 6px;
    color: var(--text-main);
    cursor: pointer;
}

.utility-cover-switch-item.utility-cover-switch-item-compact {
    grid-column: auto;
    min-height: 0;
    padding: 0;
}

.utility-cover-switch-item input {
    width: 18px;
    height: 18px;
}

.utility-cover-switch-text {
    font-size: 0.95rem;
    font-weight: 600;
}

.utility-cover-delay-field {
    grid-column: span 3;
}

.utility-cover-basic-grid > .utility-cover-field.utility-cover-sort-field {
    grid-column: span 4;
}

.utility-cover-basic-inline-group {
    grid-column: span 4;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 14px;
    background: rgba(148, 163, 184, 0.04);
}

.utility-cover-basic-inline-group-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--text-main);
}

.utility-cover-basic-inline-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    align-items: start;
}

.utility-cover-cron-toggle-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.utility-cover-basic-grid > .utility-cover-field.utility-cover-cron-field {
    grid-column: span 8;
    transition: opacity 0.2s ease;
}

.utility-cover-cron-field.is-disabled {
    opacity: 0.72;
}

.utility-cover-cron-stack {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 10px;
}

.utility-cover-basic-grid > .utility-cover-field.utility-cover-library-field {
    grid-column: span 8;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
}

.utility-cover-server-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.utility-cover-server-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--bg-card);
}

.utility-cover-server-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.utility-cover-server-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.utility-cover-server-api-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}

.utility-cover-server-api-wrap .form-input {
    flex: 1 1 auto;
    min-width: 0;
}

.utility-cover-helper {
    font-size: 0.78rem;
    line-height: 1.55;
    color: var(--text-sub);
}

.utility-cover-library-field > .utility-cover-helper {
    margin-top: 10px;
}

.utility-cover-field-full {
    grid-column: 1 / -1;
}

.utility-cover-plugin-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
}

.utility-cover-tab-btn {
    border: none;
    background: transparent;
    color: var(--text-sub);
    padding: 14px 12px;
    font-size: 0.96rem;
    font-weight: 600;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
}

.utility-cover-tab-btn.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
    background: rgba(99, 102, 241, 0.04);
}

.utility-cover-tab-panel {
    display: none;
    padding: 18px;
    min-height: 0;
}

.utility-cover-tab-panel.active {
    display: block;
}

.utility-cover-plugin-alert {
    margin-bottom: 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(14, 165, 233, 0.12);
    color: #0284c7;
    font-size: 0.86rem;
    line-height: 1.7;
}

.utility-cover-plugin-alert.utility-cover-plugin-alert-danger {
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.28);
    color: #b91c1c;
}

.utility-cover-style-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
}

.utility-cover-style-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    min-height: 150px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--bg-card);
    cursor: pointer;
    text-align: left;
    overflow: hidden;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.utility-cover-style-card:hover {
    transform: translateY(-2px);
    border-color: rgba(99, 102, 241, 0.34);
    box-shadow: 0 16px 28px rgba(15, 23, 42, 0.08);
}

.utility-cover-style-card.active {
    border-color: rgba(99, 102, 241, 0.6);
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.18);
}

.utility-cover-style-card-media {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.92;
}

.utility-cover-style-card-name,
.utility-cover-style-card-desc,
.utility-cover-style-card-radio {
    position: relative;
    z-index: 1;
}

.utility-cover-style-card-name {
    margin-top: auto;
    font-size: 0.96rem;
    font-weight: 700;
    color: #ffffff;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.36);
}

.utility-cover-style-card-desc {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.36);
}

.utility-cover-style-card-radio {
    width: 18px;
    height: 18px;
    margin-left: auto;
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, 0.92);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
}

.utility-cover-style-card.active .utility-cover-style-card-radio {
    background: var(--primary);
    border-color: #ffffff;
}

.utility-cover-toggle-inline {
    display: inline-flex;
    align-items: center;
    gap: 0;
    margin-top: 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
}

.utility-cover-choice-btn {
    border: none;
    background: transparent;
    color: var(--text-sub);
    padding: 10px 16px;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
}

.utility-cover-choice-btn.active {
    background: rgba(99, 102, 241, 0.12);
    color: var(--primary);
}

.utility-cover-subsection {
    margin-top: 16px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 14px;
    padding: 14px;
    background: rgba(148, 163, 184, 0.04);
}

.utility-cover-subsection-title {
    margin-bottom: 12px;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--text-main);
}

.utility-cover-subsection-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}

.utility-cover-subsection-grid.utility-cover-dynamic-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.utility-cover-hidden-input {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none;
}

.utility-cover-code-editor {
    width: 100%;
    min-height: 420px;
    max-height: 56vh;
    resize: vertical;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px 16px;
    background: #1f2428;
    color: #e5e7eb;
    font-family: Consolas, 'Courier New', monospace;
    font-size: 13px;
    line-height: 1.65;
    box-sizing: border-box;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
}

.utility-cover-more-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}

.utility-cover-toolbar {
    position: sticky;
    top: 0;
    z-index: 4;
    padding-bottom: 10px;
    margin-bottom: -2px;
    background: linear-gradient(180deg, var(--bg-card) 0%, var(--bg-card) 82%, rgba(255,255,255,0) 100%);
}

html[data-theme="dark"] .utility-cover-toolbar {
    background: linear-gradient(180deg, var(--bg-card) 0%, var(--bg-card) 82%, rgba(15,23,42,0) 100%);
}

html[data-theme="dark"] .utility-cover-plugin-modal::-webkit-scrollbar-track {
    background: rgba(148, 163, 184, 0.08);
}

html[data-theme="dark"] .utility-cover-plugin-modal::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.34);
}

html[data-theme="dark"] .utility-cover-plugin-modal::-webkit-scrollbar-thumb:hover {
    background: rgba(148, 163, 184, 0.5);
}

html[data-theme="dark"] .utility-tool-card {
    border-color: rgba(148, 163, 184, 0.16);
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.18) 0%, rgba(99, 102, 241, 0.05) 100%), var(--bg-card);
}

html[data-theme="dark"] .utility-tool-card-emby {
    background: linear-gradient(180deg, rgba(16, 185, 129, 0.2) 0%, rgba(16, 185, 129, 0.06) 100%), var(--bg-card);
}

html[data-theme="dark"] .utility-tool-card-ai {
    background: linear-gradient(180deg, rgba(14, 165, 233, 0.18) 0%, rgba(14, 165, 233, 0.05) 100%), var(--bg-card);
}

html[data-theme="dark"] .utility-tool-card-tmdb-regex {
    background: linear-gradient(180deg, rgba(245, 158, 11, 0.22) 0%, rgba(245, 158, 11, 0.06) 100%), var(--bg-card);
}

html[data-theme="dark"] .utility-tool-card-tmdb-settings {
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.2) 0%, rgba(99, 102, 241, 0.06) 100%), var(--bg-card);
}

html[data-theme="dark"] .utility-tool-card-tmdb-settings .utility-tool-card-icon {
    background: rgba(99, 102, 241, 0.22);
}

html[data-theme="dark"] .utility-tool-card-tmdb-regex .utility-tool-card-icon {
    background: rgba(245, 158, 11, 0.22);
}

.utility-tmdb-regex-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    scrollbar-width: thin;
    scrollbar-color: rgba(148, 163, 184, 0.48) rgba(148, 163, 184, 0.10);
    gap: 16px;
    padding-right: 4px;
}

.utility-tmdb-search-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    scrollbar-width: thin;
    scrollbar-color: rgba(148, 163, 184, 0.48) rgba(148, 163, 184, 0.10);
    gap: 16px;
}

.utility-tmdb-regex-modal {
    width: min(1180px, calc(100vw - 40px));
    height: min(88vh, 920px);
    max-height: min(88vh, 920px);
}

.utility-tmdb-search-modal {
    height: min(88vh, 920px);
    max-height: min(88vh, 920px);
}

.utility-tmdb-regex-body::-webkit-scrollbar,
.utility-tmdb-search-modal-body::-webkit-scrollbar,
.utility-tmdb-regex-rules-list::-webkit-scrollbar,
.utility-tmdb-search-result::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.utility-tmdb-regex-body::-webkit-scrollbar-track,
.utility-tmdb-search-modal-body::-webkit-scrollbar-track,
.utility-tmdb-regex-rules-list::-webkit-scrollbar-track,
.utility-tmdb-search-result::-webkit-scrollbar-track {
    background: rgba(148, 163, 184, 0.08);
    border-radius: 999px;
}

.utility-tmdb-regex-body::-webkit-scrollbar-thumb,
.utility-tmdb-search-modal-body::-webkit-scrollbar-thumb,
.utility-tmdb-regex-rules-list::-webkit-scrollbar-thumb,
.utility-tmdb-search-result::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.38);
    border-radius: 999px;
}

.utility-tmdb-regex-body::-webkit-scrollbar-thumb:hover,
.utility-tmdb-search-modal-body::-webkit-scrollbar-thumb:hover,
.utility-tmdb-regex-rules-list::-webkit-scrollbar-thumb:hover,
.utility-tmdb-search-result::-webkit-scrollbar-thumb:hover {
    background: rgba(148, 163, 184, 0.56);
}

.utility-tmdb-regex-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 8px 2px 4px;
    flex-wrap: wrap;
}

.utility-tmdb-regex-toolbar .utility-ai-actions {
    gap: 12px;
    flex-wrap: wrap;
}

.utility-tmdb-regex-rules-card {
    padding: 18px;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.utility-tmdb-regex-rules-card > .utility-cover-helper {
    margin-top: 8px;
    margin-bottom: 16px;
    line-height: 1.75;
}

.utility-tmdb-regex-rules-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: scroll;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding-right: 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(148, 163, 184, 0.48) rgba(148, 163, 184, 0.10);
}

.utility-tmdb-rule-card {
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 18px;
    background: linear-gradient(135deg, rgba(255,255,255,0.96), rgba(248,250,252,0.92));
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.utility-tmdb-rule-card.is-active {
    border-color: rgba(245, 158, 11, 0.45);
    box-shadow: 0 12px 28px rgba(245, 158, 11, 0.12);
}

.utility-tmdb-rule-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 6px;
    border-bottom: 1px dashed rgba(148, 163, 184, 0.24);
}

.utility-tmdb-rule-select {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.92rem;
    font-weight: 600;
}

.utility-tmdb-rule-actions {
    display: inline-flex;
    gap: 8px;
    flex-wrap: wrap;
}

.utility-tmdb-rule-main {
    display: grid;
    grid-template-columns: 124px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.utility-tmdb-rule-poster {
    width: 124px;
    height: 176px;
    border-radius: 14px;
    overflow: hidden;
    background: rgba(148, 163, 184, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
}

.utility-tmdb-rule-poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.utility-tmdb-rule-poster-empty {
    font-size: 0.8rem;
    color: var(--text-secondary);
    text-align: center;
    padding: 0 10px;
}

.utility-tmdb-rule-fields {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.utility-tmdb-rule-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.utility-tmdb-rule-label {
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.utility-tmdb-rule-info-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.utility-tmdb-rule-info-item {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px 14px;
    background: rgba(148, 163, 184, 0.08);
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 74px;
    justify-content: center;
}

.utility-tmdb-rule-info-item span {
    font-size: 0.78rem;
    color: var(--text-secondary);
}

.utility-tmdb-rule-info-item strong {
    font-size: 0.92rem;
    word-break: break-word;
}

.utility-tmdb-search-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px 140px;
    gap: 12px;
    margin-bottom: 18px;
}

.utility-tmdb-search-modal-body > .utility-cover-helper {
    line-height: 1.75;
    margin-bottom: 2px;
}

.utility-tmdb-search-result {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 14px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: scroll;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    align-content: start;
    padding-right: 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(148, 163, 184, 0.48) rgba(148, 163, 184, 0.10);
}

.utility-tmdb-search-card {
    border: 1px solid var(--border);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(248,250,252,0.92));
    padding: 12px;
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    text-align: left;
    cursor: pointer;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.utility-tmdb-search-card:hover {
    transform: translateY(-1px);
    border-color: rgba(245, 158, 11, 0.42);
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
}

.utility-tmdb-search-card-poster {
    width: 82px;
    height: 118px;
    border-radius: 12px;
    overflow: hidden;
    background: rgba(148, 163, 184, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
}

.utility-tmdb-search-card-poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.utility-tmdb-search-card-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.utility-tmdb-search-card-title {
    font-size: 1rem;
    font-weight: 700;
    word-break: break-word;
}

.utility-tmdb-search-card-subtitle {
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.utility-tmdb-search-card-overview {
    font-size: 0.83rem;
    color: var(--text-secondary);
    display: -webkit-box;
    line-clamp: 4;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

html[data-theme="dark"] .utility-tmdb-rule-card,
html[data-theme="dark"] .utility-tmdb-search-card {
    background: linear-gradient(135deg, rgba(30, 41, 59, 0.88), rgba(15, 23, 42, 0.92));
}

html[data-theme="dark"] .utility-tmdb-rule-card.is-active {
    border-color: rgba(245, 158, 11, 0.52);
    box-shadow: 0 12px 28px rgba(245, 158, 11, 0.14);
}

html[data-theme="dark"] .utility-tmdb-rule-info-item {
    background: rgba(148, 163, 184, 0.12);
}

html[data-theme="dark"] .utility-tmdb-rule-head {
    border-bottom-color: rgba(148, 163, 184, 0.2);
}

@media (max-width: 900px) {
    .utility-tmdb-regex-modal {
        width: calc(100vw - 18px);
    }

    .utility-tmdb-rule-main {
        grid-template-columns: 1fr;
    }

    .utility-tmdb-rule-poster {
        width: 96px;
        height: 136px;
    }

    .utility-tmdb-regex-toolbar {
        align-items: stretch;
    }

    .utility-tmdb-rule-info-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .utility-tmdb-search-toolbar {
        grid-template-columns: 1fr;
    }
}

html[data-theme="dark"] .utility-tool-card:hover {
    border-color: rgba(129, 140, 248, 0.4);
    box-shadow: 0 18px 32px rgba(2, 6, 23, 0.34);
}

html[data-theme="dark"] .utility-tool-card-ai .utility-tool-card-icon {
    background: rgba(14, 165, 233, 0.2);
}

html[data-theme="dark"] .utility-tool-card-emby .utility-tool-card-icon {
    background: rgba(16, 185, 129, 0.2);
}

html[data-theme="dark"] .utility-tool-card-share-clean .utility-tool-card-icon {
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
}

html[data-theme="dark"] .utility-tool-card-icon {
    background: rgba(129, 140, 248, 0.16);
}

html[data-theme="dark"] .utility-tool-card-meta {
    background: rgba(129, 140, 248, 0.14);
    color: #93c5fd;
}

html[data-theme="dark"] .utility-modal-overlay {
    background: rgba(2, 6, 23, 0.72);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

html[data-theme="dark"] .utility-modal {
    border-color: rgba(148, 163, 184, 0.18);
    box-shadow: 0 24px 64px rgba(2, 6, 23, 0.5);
}

html[data-theme="dark"] .utility-share-clean-stat-card,
html[data-theme="dark"] .utility-share-clean-log-item,
html[data-theme="dark"] .utility-share-clean-history-item,
html[data-theme="dark"] .utility-share-clean-detail-item,
html[data-theme="dark"] .utility-share-clean-detail-subitem,
html[data-theme="dark"] .utility-share-clean-detail-summary {
    background: rgba(148, 163, 184, 0.06);
}

html[data-theme="dark"] .utility-share-clean-log-item.is-error,
html[data-theme="dark"] .utility-share-clean-history-item.is-error,
html[data-theme="dark"] .utility-share-clean-detail-item.is-danger {
    background: rgba(127, 29, 29, 0.24);
}

html[data-theme="dark"] .utility-share-clean-log-item.is-warning,
html[data-theme="dark"] .utility-share-clean-history-item.is-partial {
    background: rgba(120, 53, 15, 0.24);
}

html[data-theme="dark"] .utility-modal-header {
    border-bottom-color: rgba(148, 163, 184, 0.14);
}

html[data-theme="dark"] .utility-modal-close {
    background: rgba(148, 163, 184, 0.12);
    border-color: rgba(148, 163, 184, 0.24);
    color: #e5e7eb;
}

html[data-theme="dark"] .utility-modal-close:hover {
    background: rgba(148, 163, 184, 0.2);
    border-color: rgba(148, 163, 184, 0.38);
}

html[data-theme="dark"] .utility-cover-form-block,
html[data-theme="dark"] .utility-cover-result-item {
    background: rgba(148, 163, 184, 0.06);
    border-color: rgba(148, 163, 184, 0.14);
}

html[data-theme="dark"] .utility-ai-card,
html[data-theme="dark"] .utility-ai-switch-row {
    background: rgba(148, 163, 184, 0.06);
    border-color: rgba(148, 163, 184, 0.14);
}

html[data-theme="dark"] .utility-cover-library-item {
    background: rgba(15, 23, 42, 0.74);
    border-color: rgba(148, 163, 184, 0.14);
}

html[data-theme="dark"] .utility-cover-library-badge {
    background: rgba(129, 140, 248, 0.16);
    color: rgba(0, 113, 227, 0.25);
}

html[data-theme="dark"] .utility-cover-mini-btn {
    background: rgba(148, 163, 184, 0.12);
    border-color: rgba(148, 163, 184, 0.2);
    color: #e5e7eb;
}

html[data-theme="dark"] .utility-cover-mini-btn:hover {
    background: rgba(148, 163, 184, 0.18);
    border-color: rgba(148, 163, 184, 0.34);
}

html[data-theme="dark"] .utility-tool-card-emby-clean {
    background: linear-gradient(135deg, rgba(127, 29, 29, 0.22) 0%, rgba(6, 78, 59, 0.22) 100%);
}

html[data-theme="dark"] .utility-emby-cleaner-stat-card,
html[data-theme="dark"] .utility-emby-cleaner-preview-item,
html[data-theme="dark"] .utility-emby-cleaner-empty {
    background: rgba(148, 163, 184, 0.06);
    border-color: rgba(148, 163, 184, 0.16);
}

html[data-theme="dark"] .utility-emby-cleaner-error-item {
    background: rgba(127, 29, 29, 0.24);
    border-color: rgba(248, 113, 113, 0.28);
}

html[data-theme="dark"] .utility-cover-plugin-card,
html[data-theme="dark"] .utility-cover-subsection {
    border-color: rgba(148, 163, 184, 0.16);
    background: rgba(148, 163, 184, 0.05);
}

html[data-theme="dark"] .utility-cover-plugin-section-head,
html[data-theme="dark"] .utility-cover-plugin-tabs {
    border-color: rgba(148, 163, 184, 0.14);
}

html[data-theme="dark"] .utility-cover-tab-btn.active {
    background: rgba(99, 102, 241, 0.1);
}

html[data-theme="dark"] .utility-cover-plugin-alert {
    background: rgba(14, 165, 233, 0.12);
    color: #38bdf8;
}

html[data-theme="dark"] .utility-cover-plugin-alert.utility-cover-plugin-alert-danger {
    background: rgba(127, 29, 29, 0.24);
    border-color: rgba(248, 113, 113, 0.28);
    color: #fca5a5;
}

html[data-theme="dark"] .utility-cover-style-card {
    border-color: rgba(148, 163, 184, 0.16);
    background: rgba(15, 23, 42, 0.78);
}

html[data-theme="dark"] .utility-cover-toggle-inline {
    border-color: rgba(148, 163, 184, 0.2);
}

html[data-theme="dark"] .utility-cover-choice-btn.active {
    background: rgba(99, 102, 241, 0.18);
    color: rgba(0, 113, 227, 0.25);
}

html[data-theme="dark"] .utility-cover-code-editor {
    border-color: rgba(148, 163, 184, 0.18);
    background: #111827;
    color: #e5e7eb;
}

@media (max-width: 768px) {
    .utility-tools-grid {
        grid-template-columns: 1fr;
    }

    .utility-modal {
        width: calc(100vw - 12px);
        max-height: calc(100vh - 16px);
        padding: 14px 12px calc(env(safe-area-inset-bottom) + 14px);
        border-radius: 16px;
    }

    .utility-modal-header {
        align-items: flex-start;
    }

    .utility-cover-form-grid {
        grid-template-columns: 1fr;
    }

    .utility-cover-library-list {
        min-height: 220px;
        grid-template-columns: 1fr;
    }

    .utility-cover-basic-grid {
        grid-template-columns: 1fr;
    }

    .utility-ai-grid {
        grid-template-columns: 1fr;
    }

    .utility-cover-basic-grid > .utility-cover-field {
        grid-column: auto;
    }

    .utility-cover-basic-grid > .utility-cover-field {
        grid-column: auto;
    }

    .utility-cover-switch-item,
    .utility-cover-delay-field,
    .utility-cover-field-full {
        grid-column: auto;
    }

    .utility-cover-basic-grid > .utility-cover-field.utility-cover-sort-field,
    .utility-cover-basic-grid > .utility-cover-field.utility-cover-cron-field,
    .utility-cover-basic-grid > .utility-cover-field.utility-cover-library-field,
    .utility-cover-basic-grid > .utility-cover-field.utility-cover-field-full,
    .utility-cover-basic-inline-group {
        grid-column: auto;
    }

    .utility-cover-basic-inline-group {
        padding: 12px;
    }

    .utility-cover-basic-inline-grid {
        grid-template-columns: 1fr;
    }

    .utility-cover-server-grid {
        grid-template-columns: 1fr;
    }

    .utility-cover-style-grid,
    .utility-cover-subsection-grid,
    .utility-cover-more-grid {
        grid-template-columns: 1fr;
    }

    .utility-emby-cleaner-summary-grid {
        grid-template-columns: 1fr;
    }

    .utility-emby-cleaner-actions {
        width: 100%;
    }

    .utility-emby-cleaner-actions .utility-cover-mini-btn {
        flex: 1 1 auto;
    }

    .utility-share-clean-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .utility-share-clean-actions {
        width: 100%;
    }

    .utility-share-clean-actions .utility-cover-mini-btn {
        flex: 1 1 auto;
    }

    .utility-share-clean-history-toolbar {
        flex-direction: column;
    }

    .utility-cover-library-name-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .utility-cover-toolbar {
        position: static;
        background: transparent;
        padding-bottom: 0;
        margin-bottom: 0;
    }
}

/* 代理设置 */
.proxy-settings-wrap {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.proxy-settings-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    flex-wrap: wrap;
    position: relative;
    padding: 16px 20px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    background: var(--bg-card);
    box-shadow: var(--specular-highlight), var(--shadow-card);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

html[data-theme="dark"] .proxy-settings-head {
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(18, 25, 41, 0.75);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), var(--shadow-card);
}

.proxy-settings-title {
    margin: 0;
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--text-main);
}

.proxy-settings-tip {
    margin-top: 6px;
    font-size: 0.85rem;
    color: var(--text-sub);
    line-height: 1.5;
}

.proxy-settings-tip code {
    background: rgba(148, 163, 184, 0.16);
    border-radius: 6px;
    padding: 0 6px;
}

.proxy-settings-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.proxy-settings-actions-top {
    justify-content: flex-end;
}

.proxy-settings-actions-bottom {
    margin-top: 10px;
}

.proxy-settings-save-reminder {
    font-size: 0.78rem;
    color: var(--text-sub);
    white-space: nowrap;
}

.proxy-settings-block-actions {
    margin-top: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.proxy-settings-btn {
    border: none;
    border-radius: var(--radius-sm);
    font-size: 0.84rem;
    font-weight: 600;
    padding: 7px 14px;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.proxy-settings-btn.primary {
    background: var(--primary-gradient);
    color: #fff;
    box-shadow: 0 4px 14px var(--primary-glow);
}

.proxy-settings-btn.primary:hover:not(:disabled) {
    transform: translateY(-1.5px);
    box-shadow: 0 8px 22px var(--primary-glow);
}

.proxy-settings-btn.primary:active:not(:disabled) {
    transform: scale(0.97);
}

html[data-theme="dark"] .proxy-settings-btn.primary {
    color: #030712;
    font-weight: 700;
}

.proxy-settings-btn.secondary {
    background: var(--bg-card);
    color: var(--text-main);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
}

.proxy-settings-btn.secondary:hover:not(:disabled) {
    background: rgba(148, 163, 184, 0.12);
    border-color: var(--border-hover);
    transform: translateY(-1px);
}

.proxy-settings-btn.secondary:active:not(:disabled) {
    transform: scale(0.97);
}

.proxy-settings-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.proxy-settings-inline-result {
    min-height: 20px;
    font-size: 0.8rem;
    color: var(--text-sub);
}

.proxy-settings-inline-result.success {
    color: #059669;
}

.proxy-settings-inline-result.error {
    color: #dc2626;
}

.proxy-settings-inline-result.info {
    color: #64748b;
}

.proxy-settings-field-wrap {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.proxy-settings-guide {
    padding: 18px 20px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.05), rgba(59, 130, 246, 0.02));
    box-shadow: var(--specular-highlight), var(--shadow-card);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

html[data-theme="dark"] .proxy-settings-guide {
    border-color: rgba(255, 255, 255, 0.08);
    background: linear-gradient(135deg, rgba(56, 189, 248, 0.08), rgba(18, 25, 41, 0.8));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), var(--shadow-card);
}

.proxy-settings-guide-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--text-main);
}

.proxy-settings-guide-desc {
    margin-top: 6px;
    font-size: 0.82rem;
    line-height: 1.6;
    color: var(--text-sub);
}

.proxy-settings-guide-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.proxy-settings-guide-card {
    padding: 16px 18px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
    background: var(--bg-card);
    box-shadow: var(--shadow-sm);
    transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
}

.proxy-settings-guide-card:hover {
    border-color: var(--border-hover);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

html[data-theme="dark"] .proxy-settings-guide-card {
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(18, 25, 41, 0.65);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.proxy-settings-guide-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(99, 102, 241, 0.12);
    color: var(--primary);
    font-size: 0.74rem;
    font-weight: 700;
}

.proxy-settings-guide-card-title {
    margin-top: 10px;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
}

.proxy-settings-guide-list,
.proxy-settings-steps-list {
    margin: 10px 0 0 18px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 0.8rem;
    line-height: 1.65;
    color: var(--text-sub);
}

.proxy-settings-guide-list li,
.proxy-settings-steps-list li {
    margin: 0;
}

.proxy-settings-steps {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px dashed rgba(99, 102, 241, 0.22);
    background: rgba(99, 102, 241, 0.05);
}

html[data-theme="dark"] .proxy-settings-steps {
    border-color: rgba(99, 102, 241, 0.24);
    background: rgba(99, 102, 241, 0.08);
}

.proxy-settings-steps-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-main);
}

.proxy-settings-save-panel {
    padding: 18px;
    border-radius: 18px;
    border: 1px solid rgba(99, 102, 241, 0.18);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(59, 130, 246, 0.06));
}

html[data-theme="dark"] .proxy-settings-save-panel {
    border-color: rgba(99, 102, 241, 0.22);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.16), rgba(59, 130, 246, 0.1));
}

.proxy-settings-save-panel-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--text-main);
}

.proxy-settings-save-panel-desc {
    margin-top: 6px;
    font-size: 0.82rem;
    line-height: 1.6;
    color: var(--text-sub);
}

.proxy-settings-blocks {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.proxy-settings-block {
    padding: 18px;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(255, 255, 255, 0.76);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.tg-transfer-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.tg-transfer-section {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 18px;
}

.tg-transfer-section:last-child {
    margin-bottom: 0;
}

.tg-transfer-section-head {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(99, 102, 241, 0.12);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(59, 130, 246, 0.04));
}

.tg-transfer-section-command .tg-transfer-section-head {
    border-color: rgba(16, 185, 129, 0.14);
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.09), rgba(14, 165, 233, 0.04));
}

.tg-transfer-section-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-main);
}

.tg-transfer-section-desc {
    font-size: 0.82rem;
    line-height: 1.6;
    color: var(--text-sub);
}

.tg-transfer-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 18px;
    border-radius: 20px;
    border: 1px solid rgba(99, 102, 241, 0.16);
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.08) 0%, rgba(59, 130, 246, 0.03) 100%), var(--bg-card);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

html[data-theme="dark"] .tg-transfer-card {
    border-color: rgba(99, 102, 241, 0.24);
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.16) 0%, rgba(59, 130, 246, 0.06) 100%), var(--bg-card);
    box-shadow: 0 14px 30px rgba(2, 6, 23, 0.28);
}

.tg-transfer-card.is-disabled {
    border-color: rgba(148, 163, 184, 0.28);
    background: linear-gradient(180deg, rgba(148, 163, 184, 0.10) 0%, rgba(148, 163, 184, 0.03) 100%), var(--bg-card);
    box-shadow: none;
}

html[data-theme="dark"] .tg-transfer-card.is-disabled {
    border-color: rgba(148, 163, 184, 0.24);
    background: linear-gradient(180deg, rgba(148, 163, 184, 0.10) 0%, rgba(15, 23, 42, 0.04) 100%), var(--bg-card);
    box-shadow: none;
}

.tg-transfer-card .form-input {
    width: 100%;
}

.tg-transfer-card .kv-note-input,
.tg-transfer-card .kv-command-head-input {
    font-size: 0.92rem;
}

.tg-transfer-card .kv-command-head-input {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

.tg-transfer-card-title {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(99, 102, 241, 0.12);
    color: var(--primary);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1;
}

html[data-theme="dark"] .tg-transfer-card-title {
    background: rgba(129, 140, 248, 0.2);
}

.tg-transfer-card .tg-transfer-option-row {
    margin-top: 2px;
}

.tg-transfer-enable-row {
    background: rgba(16, 185, 129, 0.08);
    border-color: rgba(16, 185, 129, 0.18);
}

html:not([data-theme="dark"]) .tg-transfer-enable-row {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.tg-transfer-card.is-disabled .tg-transfer-enable-row,
html:not([data-theme="dark"]) .tg-transfer-card.is-disabled .tg-transfer-enable-row {
    background: rgba(148, 163, 184, 0.10);
    border-color: rgba(148, 163, 184, 0.20);
}

.tg-transfer-enable-control {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.tg-transfer-enable-status {
    color: var(--text-muted);
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
}

.tg-transfer-enable-status.is-on {
    color: #059669;
}

html[data-theme="dark"] .proxy-settings-block {
    border-color: rgba(148, 163, 184, 0.14);
    background: rgba(15, 23, 42, 0.42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

@media (max-width: 768px) {
    .tg-transfer-card-grid {
        grid-template-columns: 1fr;
    }

    .tg-transfer-card {
        padding: 16px;
        border-radius: 18px;
    }
}

.proxy-settings-block-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}

.proxy-settings-block-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.05rem;
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.16), rgba(59, 130, 246, 0.12));
    border: 1px solid rgba(99, 102, 241, 0.18);
}

.proxy-settings-block-title {
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--text-main);
}

.proxy-settings-block-desc {
    margin-top: 4px;
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--text-sub);
}

.proxy-settings-label {
    font-size: 0.82rem;
    color: var(--text-sub);
    font-weight: 600;
}

.proxy-settings-input {
    width: 100%;
    max-width: 760px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    font-size: 0.9rem;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.proxy-settings-input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px var(--primary-light);
}

.proxy-settings-hint {
    font-size: 0.78rem;
    color: var(--text-sub);
}

.proxy-settings-status {
    margin-top: 14px;
    font-size: 0.84rem;
    border-radius: 10px;
    padding: 9px 12px;
    border: 1px solid transparent;
}

.proxy-settings-status.info {
    color: #64748b;
    background: rgba(148, 163, 184, 0.12);
    border-color: rgba(148, 163, 184, 0.25);
}

.proxy-settings-status.success {
    color: #059669;
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(16, 185, 129, 0.25);
}

.proxy-settings-status.error {
    color: #dc2626;
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.25);
}

.proxy-settings-meta {
    margin-top: 12px;
    font-size: 0.8rem;
    color: var(--text-sub);
}

.proxy-settings-results {
    margin-top: 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px;
    background: var(--bg-card);
}

.proxy-settings-results-summary {
    font-size: 0.82rem;
    color: var(--text-main);
    margin-bottom: 8px;
    font-weight: 600;
}

.proxy-settings-results-table-wrap {
    overflow: auto;
}

.proxy-settings-results-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

.proxy-settings-results-table th,
.proxy-settings-results-table td {
    border-bottom: 1px solid var(--border);
    padding: 8px 10px;
    text-align: left;
    white-space: nowrap;
}

.proxy-settings-results-table th {
    color: var(--text-sub);
    font-weight: 600;
}

.proxy-settings-results-table tr:last-child td {
    border-bottom: none;
}

.bot-cmd-updated {
    margin-bottom: 8px;
}

.bot-cmd-row {
    padding: 8px 10px;
}

.bot-cmd-row-main {
    display: flex;
    align-items: center;
    gap: 8px;
}

.bot-cmd-drag-handle {
    cursor: grab;
    user-select: none;
    color: var(--text-sub);
    line-height: 1;
}

.bot-cmd-switch {
    margin: 0;
    padding: 6px 10px;
    min-width: 112px;
}

.bot-cmd-switch .switch-label {
    font-size: 0.84rem;
}

.bot-cmd-command {
    font-weight: 700;
    min-width: 128px;
    font-size: 0.88rem;
}

.bot-cmd-desc {
    flex: 1;
    min-width: 220px;
    padding: 8px 10px;
    font-size: 0.86rem;
}

.transfer-source-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.transfer-filters {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.transfer-filter-item {
    display: flex;
    align-items: center;
    gap: 8px;
}

.transfer-filter-label {
    font-size: 0.82rem;
    color: var(--text-sub);
    font-weight: 600;
}

.transfer-status-select {
    min-width: 150px;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    font-size: 0.82rem;
    outline: none;
}

.transfer-status-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px var(--primary-light);
}

.transfer-filter-item-keyword {
    margin-left: auto;
}

.transfer-result-input {
    min-width: 300px;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    font-size: 0.82rem;
    outline: none;
}

.transfer-result-input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px var(--primary-light);
}

.organize-clear-filters {
    margin-top: -4px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.organize-clear-all-switch {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--text-main);
}

.organize-clear-all-switch input[type="checkbox"] {
    width: 14px;
    height: 14px;
}

.organize-clear-modal {
    position: fixed;
    inset: 0;
    z-index: 4200;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.22s ease, visibility 0s linear 0.22s;
}

.organize-clear-mask {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(8px);
    opacity: 0;
    transition: opacity 0.22s ease;
}

.organize-clear-panel {
    position: relative;
    width: min(520px, calc(100vw - 28px));
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.96));
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 20px;
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.28);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: translateY(22px) scale(0.965);
    opacity: 0;
    transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.22s ease, box-shadow 0.22s ease;
    will-change: transform, opacity;
}

html[data-theme="dark"] .organize-clear-panel {
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.98), rgba(17, 24, 39, 0.96));
    border-color: rgba(148, 163, 184, 0.12);
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.5);
}

.organize-clear-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.22s ease;
}

.organize-clear-modal.is-open .organize-clear-mask {
    opacity: 1;
}

.organize-clear-modal.is-open .organize-clear-panel {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.organize-clear-panel:focus {
    outline: none;
}

.organize-clear-header {
    padding: 14px 16px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.organize-clear-hero {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.organize-clear-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    flex-shrink: 0;
    background: linear-gradient(135deg, rgba(248, 113, 113, 0.18), rgba(239, 68, 68, 0.12));
    border: 1px solid rgba(239, 68, 68, 0.18);
}

.organize-clear-heading {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.organize-clear-eyebrow {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #ef4444;
}

.organize-clear-title {
    margin: 0;
    font-size: 1.08rem;
    color: var(--text-main);
}

.organize-clear-tip {
    font-size: 0.82rem;
    color: var(--text-sub);
}

.organize-clear-source-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: 999px;
    background: rgba(99, 102, 241, 0.12);
    color: var(--primary);
    font-weight: 700;
}

.organize-clear-close-btn {
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(148, 163, 184, 0.08);
    color: var(--text-main);
    border-radius: 10px;
    padding: 4px 10px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: all 0.2s ease;
}

.organize-clear-close-btn:hover {
    border-color: rgba(99, 102, 241, 0.35);
    background: rgba(99, 102, 241, 0.08);
    color: var(--primary);
}

.organize-clear-body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.organize-clear-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(248, 113, 113, 0.08);
    border: 1px solid rgba(248, 113, 113, 0.16);
}

.organize-clear-note-icon {
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: rgba(239, 68, 68, 0.14);
    color: #ef4444;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    flex-shrink: 0;
}

.organize-clear-note-text {
    min-width: 0;
}

.organize-clear-note-title {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--text-main);
}

.organize-clear-note-desc {
    margin-top: 4px;
    font-size: 0.8rem;
    line-height: 1.55;
    color: var(--text-sub);
}

.organize-clear-date-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.organize-clear-date-card {
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: rgba(255, 255, 255, 0.72);
    border-radius: 16px;
    padding: 14px;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 6px;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

html[data-theme="dark"] .organize-clear-date-card {
    background: rgba(30, 41, 59, 0.44);
    border-color: rgba(148, 163, 184, 0.1);
}

.organize-clear-date-card:hover {
    border-color: rgba(99, 102, 241, 0.2);
    background: rgba(99, 102, 241, 0.05);
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(99, 102, 241, 0.08);
}

.organize-clear-date-card.active {
    border-color: rgba(99, 102, 241, 0.35);
    background: rgba(99, 102, 241, 0.08);
    box-shadow: 0 12px 28px rgba(99, 102, 241, 0.12);
}

.organize-clear-date-card.is-disabled {
    opacity: 0.58;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.organize-clear-date-card-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-sub);
}

.organize-clear-date-input {
    width: 100%;
    border: none;
    background: transparent;
    padding: 0;
    margin: 0;
    outline: none;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-main);
    line-height: 1.3;
    letter-spacing: 0.02em;
}

.organize-clear-date-input::placeholder {
    color: var(--text-sub);
    font-weight: 600;
}

.organize-clear-date-input[aria-invalid="true"] {
    color: #ef4444;
}

.organize-clear-date-input:disabled {
    cursor: not-allowed;
}

.organize-clear-date-card-meta {
    font-size: 0.76rem;
    color: var(--text-sub);
}

.organize-clear-calendar-shell {
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 18px;
    padding: 14px;
    background: rgba(255, 255, 255, 0.78);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

html[data-theme="dark"] .organize-clear-calendar-shell {
    background: rgba(30, 41, 59, 0.52);
    border-color: rgba(148, 163, 184, 0.1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.organize-clear-calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.organize-clear-calendar-heading {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.organize-clear-calendar-label {
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--text-sub);
}

.organize-clear-calendar-month {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--text-main);
}

.organize-clear-calendar-nav {
    display: flex;
    align-items: center;
    gap: 8px;
}

.organize-clear-calendar-nav-btn {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(148, 163, 184, 0.08);
    color: var(--text-main);
    cursor: pointer;
    font-size: 1rem;
    font-weight: 700;
    transition: all 0.2s ease;
}

.organize-clear-calendar-nav-btn:hover {
    border-color: rgba(99, 102, 241, 0.24);
    background: rgba(99, 102, 241, 0.08);
    color: var(--primary);
}

.organize-clear-calendar-weekdays,
.organize-clear-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 6px;
}

.organize-clear-calendar-weekdays {
    margin-bottom: 8px;
}

.organize-clear-calendar-weekdays span {
    text-align: center;
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--text-sub);
    padding: 4px 0;
}

.organize-clear-calendar-day {
    border: 1px solid transparent;
    background: transparent;
    border-radius: 12px;
    min-height: 38px;
    color: var(--text-main);
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    transition: all 0.18s ease;
}

.organize-clear-calendar-day:hover {
    background: rgba(99, 102, 241, 0.08);
    border-color: rgba(99, 102, 241, 0.14);
}

.organize-clear-calendar-day.is-muted {
    color: rgba(148, 163, 184, 0.88);
}

.organize-clear-calendar-day.is-today {
    border-color: rgba(99, 102, 241, 0.28);
}

.organize-clear-calendar-day.is-in-range {
    background: rgba(99, 102, 241, 0.08);
    color: var(--primary);
}

.organize-clear-calendar-day.is-selected,
.organize-clear-calendar-day.is-range-start,
.organize-clear-calendar-day.is-range-end {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

.organize-clear-calendar-day.is-active-selection {
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.18);
}

.organize-clear-calendar-day:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.organize-clear-calendar-actions {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 12px;
}

.organize-clear-calendar-action {
    border: none;
    background: rgba(99, 102, 241, 0.12);
    color: var(--primary);
    border-radius: 10px;
    padding: 8px 12px;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
}

.organize-clear-calendar-action:hover {
    background: rgba(99, 102, 241, 0.18);
}

.organize-clear-calendar-action.secondary {
    background: rgba(148, 163, 184, 0.12);
    color: var(--text-sub);
}

.organize-clear-calendar-action.secondary:hover {
    background: rgba(148, 163, 184, 0.18);
}

.organize-clear-field-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: rgba(255, 255, 255, 0.66);
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

html[data-theme="dark"] .organize-clear-field-row {
    background: rgba(30, 41, 59, 0.44);
    border-color: rgba(148, 163, 184, 0.1);
}

.organize-clear-field-row:hover {
    border-color: rgba(99, 102, 241, 0.18);
    background: rgba(99, 102, 241, 0.04);
    transform: translateY(-1px);
}

.organize-clear-field-label {
    font-size: 0.84rem;
    color: var(--text-sub);
    font-weight: 600;
}

.organize-clear-mode-chip {
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.14);
}

.organize-clear-field-input {
    min-width: 220px;
    transition: all 0.2s ease;
}

.organize-clear-field-input:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.organize-clear-summary {
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(99, 102, 241, 0.08);
    border: 1px solid rgba(99, 102, 241, 0.12);
    color: var(--text-main);
    font-size: 0.82rem;
    line-height: 1.55;
}

.organize-clear-summary.all-mode {
    background: rgba(239, 68, 68, 0.08);
    border-color: rgba(239, 68, 68, 0.14);
}

.organize-clear-summary.pending {
    background: rgba(59, 130, 246, 0.08);
    border-color: rgba(59, 130, 246, 0.14);
}

.organize-clear-footer {
    padding: 12px 16px 14px;
    border-top: 1px solid rgba(148, 163, 184, 0.12);
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.organize-clear-cancel-btn {
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(148, 163, 184, 0.08);
    color: var(--text-main);
    border-radius: 10px;
    font-size: 0.84rem;
    font-weight: 600;
    padding: 8px 14px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.organize-clear-cancel-btn:hover {
    border-color: rgba(148, 163, 184, 0.45);
    background: rgba(148, 163, 184, 0.08);
}

.organize-clear-modal.is-busy .organize-clear-mask {
    cursor: progress;
}

.organize-clear-close-btn:disabled,
.organize-clear-cancel-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

@media (prefers-reduced-motion: reduce) {
    .organize-clear-modal,
    .organize-clear-mask,
    .organize-clear-panel,
    .organize-clear-field-row,
    .organize-clear-date-card,
    .organize-clear-calendar-day {
        transition: none !important;
    }
}

.transfer-source-tab-btn {
    border: 1px solid var(--border);
    background: rgba(148, 163, 184, 0.08);
    color: var(--text-sub);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

html:not([data-theme="dark"]) .transfer-source-tab-btn {
    background: rgba(255, 255, 255, 0.7);
}

.transfer-source-tab-btn:hover {
    border-color: var(--border-hover);
    color: var(--text-main);
    transform: translateY(-1px);
}

.transfer-source-tab-btn:active {
    transform: scale(0.96);
}

.transfer-source-tab-btn.active {
    background: var(--primary-gradient);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 3px 12px var(--primary-glow);
}

html[data-theme="dark"] .transfer-source-tab-btn.active {
    color: #030712;
    font-weight: 700;
}

/* 浅色主题下保持选中态文字可读 */
html:not([data-theme="dark"]) .transfer-source-tab-btn.active {
    background: var(--primary-gradient);
    color: #ffffff;
    box-shadow: 0 3px 12px var(--primary-glow);
}

.transfer-history-container {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.transfer-source-block {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px;
    background: rgba(148, 163, 184, 0.08);
}

html:not([data-theme="dark"]) .transfer-source-block {
    background: #f8fafc;
}

.transfer-source-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.transfer-source-title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--text-main);
}

.transfer-source-meta {
    font-size: 0.8rem;
    color: var(--text-sub);
}

.transfer-table-wrap {
    overflow: auto;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: var(--bg-card);
}

.transfer-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 860px;
}

.transfer-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    text-align: left;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
    background: rgba(148, 163, 184, 0.16);
    color: var(--text-main);
    white-space: nowrap;
}

html:not([data-theme="dark"]) .transfer-table thead th {
    background: #f1f5f9;
}

.transfer-table tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 0.84rem;
    color: var(--text-main);
    vertical-align: top;
}

.transfer-table tbody tr:last-child td {
    border-bottom: none;
}

.transfer-time {
    white-space: nowrap;
}

.transfer-result-cell {
    max-width: 360px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 整理详情中的识别结论需要完整展示，不能沿用列表页的单行截断。 */
.organize-detail-long-text {
    max-width: none;
    white-space: pre-wrap;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    line-height: 1.55;
}

.transfer-link {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}

.transfer-link:hover {
    text-decoration: underline;
}

.transfer-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 99px;
    font-size: 0.76rem;
    font-weight: 700;
    border: 1px solid transparent;
    white-space: nowrap;
}

.transfer-status-badge.status-success {
    color: #047857;
    background: #d1fae5;
    border-color: #a7f3d0;
}

.transfer-status-badge.status-unrecognized {
    color: #7c3f00;
    background: #ffedd5;
    border-color: #fed7aa;
}

.transfer-status-badge.status-failed {
    color: #b91c1c;
    background: #fee2e2;
    border-color: #fecaca;
}

.transfer-status-badge.status-skipped {
    color: #92400e;
    background: #fef3c7;
    border-color: #fde68a;
}

.transfer-status-badge.status-ignored {
    color: #92400e;
    background: #fef3c7;
    border-color: #fde68a;
}

.transfer-status-badge.status-deleted {
    color: #be123c;
    background: #ffe4e6;
    border-color: #fecdd3;
}

.transfer-status-badge.status-replace {
    color: #1d4ed8;
    background: #dbeafe;
    border-color: #bfdbfe;
}

.transfer-status-badge.status-unknown {
    color: #4b5563;
    background: #e5e7eb;
    border-color: #d1d5db;
}

.transfer-pagination {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
}

.transfer-page-info {
    font-size: 0.82rem;
    color: var(--text-sub);
}

.transfer-page-btn {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-card);
    color: var(--text-main);
    font-size: 0.82rem;
    font-weight: 600;
    padding: 6px 12px;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.transfer-page-btn:hover:not(:disabled) {
    border-color: var(--primary);
    color: var(--primary);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.transfer-page-btn:active:not(:disabled) {
    transform: scale(0.96);
}

.transfer-page-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* 整理历史卡片摘要 */
.organize-batch-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px 14px;
    margin-top: 12px;
    margin-bottom: 12px;
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.04), rgba(99, 102, 241, 0.015));
}

.organize-batch-toolbar.is-selection-mode {
    border-color: rgba(99, 102, 241, 0.35);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.08);
}

.organize-batch-toolbar-main {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    flex: 1 1 auto;
}

.organize-batch-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.organize-batch-toolbar-actions-right {
    justify-content: flex-end;
}

.organize-batch-toolbar-meta {
    font-size: 0.82rem;
    color: var(--text-sub);
}

.organize-cards-wrap {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 10px;
}

.organize-card {
    border: 1px solid var(--border);
    background: var(--bg-card);
    border-radius: var(--radius-md);
    padding: 12px 14px;
    text-align: left;
    cursor: pointer;
    box-shadow: var(--specular-highlight), var(--shadow-sm);
    transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
    color: var(--text-main);
    overflow: hidden;
    min-width: 0;
}

.organize-card.is-selection-mode {
    cursor: cell;
}

.organize-card.is-selected {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light);
}

.organize-card:hover {
    border-color: var(--primary);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.organize-card.is-selection-mode:hover {
    border-color: var(--primary);
}

.organize-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.organize-batch-select-mode-btn.is-active {
    border-color: rgba(99, 102, 241, 0.42);
    box-shadow: 0 8px 18px rgba(99, 102, 241, 0.16);
}

.organize-card-time {
    font-size: 0.78rem;
    color: var(--text-sub);
    white-space: nowrap;
}

.organize-card-runid {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.organize-card-stats {
    font-size: 0.8rem;
    color: var(--text-sub);
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.organize-card-foot {
    margin-top: 8px;
    font-size: 0.76rem;
    color: var(--text-sub);
    display: flex;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
    min-width: 0;
    align-items: flex-start;
}

.organize-card-source,
.organize-card-target {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.organize-card-target {
    flex: 1 1 220px;
}

.organize-card-media-type {
    flex: 0 0 auto;
    white-space: nowrap;
    align-self: flex-end;
}

/* 整理历史详情弹窗 */
.organize-detail-modal {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.organize-detail-mask {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
}

.organize-detail-panel {
    position: relative;
    width: min(1200px, calc(100vw - 36px));
    max-height: calc(100vh - 36px);
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.22);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.organize-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
}

.organize-detail-title-wrap h3 {
    margin: 0;
    font-size: 1rem;
    color: var(--text-main);
}

.organize-detail-meta {
    margin-top: 6px;
    font-size: 0.8rem;
    color: var(--text-sub);
}

.organize-detail-close-btn {
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-main);
    border-radius: 8px;
    padding: 4px 10px;
    cursor: pointer;
    font-size: 0.9rem;
}

.organize-detail-close-btn:hover {
    border-color: rgba(99, 102, 241, 0.45);
    color: var(--primary);
}

.organize-detail-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
}

.organize-detail-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.organize-detail-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    padding: 0 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: var(--primary-gradient);
    color: #fff;
    cursor: pointer;
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 3px 9px var(--primary-glow), inset 0 1px 0 rgba(255, 255, 255, 0.28);
    transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease, border-color 0.16s ease;
}

.organize-detail-action-btn svg {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.organize-detail-action-btn:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 5px 14px var(--primary-glow), inset 0 1px 0 rgba(255, 255, 255, 0.32);
}

.organize-detail-action-btn:active:not(:disabled) {
    transform: translateY(0) scale(0.98);
    box-shadow: 0 2px 5px var(--primary-glow), inset 0 1px 2px rgba(15, 23, 42, 0.12);
}

.organize-detail-action-btn:disabled {
    opacity: 0.48;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.organize-detail-action-btn.is-danger {
    background: rgba(239, 68, 68, 0.08);
    border-color: rgba(239, 68, 68, 0.22);
    color: #c2413b;
    box-shadow: 0 2px 6px rgba(239, 68, 68, 0.07), inset 0 1px 0 rgba(255, 255, 255, 0.68);
}

.organize-detail-action-btn.is-danger:hover:not(:disabled) {
    background: rgba(239, 68, 68, 0.13);
    border-color: rgba(239, 68, 68, 0.34);
    box-shadow: 0 5px 12px rgba(239, 68, 68, 0.13), inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.organize-detail-action-btn.is-danger:active:not(:disabled) {
    box-shadow: 0 2px 5px rgba(239, 68, 68, 0.1), inset 0 1px 2px rgba(127, 29, 29, 0.1);
}

.organize-detail-action-btn:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--primary) 38%, transparent);
    outline-offset: 2px;
}

html[data-theme="dark"] .organize-detail-action-btn {
    color: #03111b;
    box-shadow: 0 3px 10px var(--primary-glow), inset 0 1px 0 rgba(255, 255, 255, 0.26);
}

html[data-theme="dark"] .organize-detail-action-btn.is-danger {
    background: rgba(248, 113, 113, 0.1);
    border-color: rgba(248, 113, 113, 0.25);
    color: #fca5a5;
    box-shadow: 0 2px 7px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

html[data-theme="dark"] .organize-detail-action-btn.is-danger:hover:not(:disabled) {
    background: rgba(248, 113, 113, 0.16);
    border-color: rgba(248, 113, 113, 0.4);
    box-shadow: 0 5px 14px rgba(239, 68, 68, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.organize-detail-inline-status {
    display: none;
    padding: 10px 16px 0;
    font-size: 0.82rem;
    color: var(--text-sub);
}

.organize-detail-inline-status.is-visible {
    display: block;
}

.organize-detail-inline-status.is-busy {
    color: var(--primary);
}

.organize-detail-inline-status.is-error {
    color: #dc2626;
}

.organize-detail-filters {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--border);
}

.organize-detail-content {
    padding: 10px 16px;
    overflow: auto;
    flex: 1;
}

.organize-detail-pagination {
    padding: 10px 16px 14px;
    border-top: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

body.modal-open {
    overflow: hidden;
}

.organize-recognize-modal {
    position: fixed;
    inset: 0;
    z-index: 4050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease;
}

.organize-recognize-modal.is-open {
    opacity: 1;
    pointer-events: auto;
}

.organize-recognize-mask {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(6px);
    opacity: 0;
    transition: opacity 0.22s ease;
}

.organize-recognize-modal.is-open .organize-recognize-mask {
    opacity: 1;
}

.organize-recognize-panel {
    position: relative;
    width: min(1120px, calc(100vw - 36px));
    max-height: calc(100vh - 36px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 24px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.98) 0%, rgba(255, 255, 255, 0.96) 100%);
    box-shadow: 0 28px 60px rgba(15, 23, 42, 0.28);
    transform: translateY(20px) scale(0.985);
    transition: transform 0.22s ease;
}

.organize-recognize-modal.is-open .organize-recognize-panel {
    transform: translateY(0) scale(1);
}

html[data-theme="dark"] .organize-recognize-panel {
    border-color: rgba(99, 102, 241, 0.2);
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.98) 0%, rgba(2, 6, 23, 0.96) 100%);
    box-shadow: 0 32px 72px rgba(2, 6, 23, 0.55);
}

.organize-recognize-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 22px 14px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    background: var(--primary-light);
}

.organize-recognize-hero {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.organize-recognize-icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    background: var(--primary-light); color: var(--primary);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.organize-recognize-heading {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.organize-recognize-eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-sub);
    font-weight: 700;
}

.organize-recognize-title {
    margin: 0;
    font-size: 1.18rem;
    font-weight: 800;
    color: var(--text-main);
}

.organize-recognize-tip {
    font-size: 0.86rem;
    line-height: 1.6;
    color: var(--text-sub);
}

.organize-recognize-close-btn {
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: rgba(255, 255, 255, 0.7);
    color: var(--text-main);
    border-radius: 12px;
    padding: 7px 10px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: all 0.2s ease;
}

.organize-recognize-close-btn:hover {
    color: var(--primary);
    border-color: rgba(99, 102, 241, 0.45);
    background: rgba(255, 255, 255, 0.92);
}

html[data-theme="dark"] .organize-recognize-close-btn {
    background: rgba(15, 23, 42, 0.82);
}

.organize-recognize-body {
    padding: 18px 22px 22px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 0;
}

.organize-recognize-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.organize-recognize-label {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--text-main);
}

.organize-recognize-input-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.organize-recognize-input {
    flex: 1;
    min-width: 0;
    border-radius: 14px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    background: rgba(255, 255, 255, 0.9);
    color: var(--text-main);
    padding: 13px 16px;
    font-size: 0.92rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.organize-recognize-input:focus {
    outline: none;
    border-color: rgba(124, 58, 237, 0.55);
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.12);
}

html[data-theme="dark"] .organize-recognize-input {
    background: rgba(15, 23, 42, 0.88);
}

.organize-recognize-submit-btn {
    border: none;
    border-radius: 14px;
    background: var(--primary);
    color: #fff;
    font-size: 0.88rem;
    font-weight: 700;
    padding: 13px 18px;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 4px 14px var(--primary-glow);
    transition: all 0.2s ease;
}

.organize-recognize-submit-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 18px var(--primary-glow);
}

.organize-recognize-submit-btn:disabled,
.organize-recognize-close-btn:disabled,
.organize-recognize-input:disabled {
    opacity: 0.72;
    cursor: not-allowed;
}

.organize-recognize-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.organize-recognize-toggle {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    width: 100%;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid rgba(99, 102, 241, 0.16);
    background: rgba(99, 102, 241, 0.06);
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.organize-recognize-toggle:hover {
    border-color: rgba(99, 102, 241, 0.3);
    background: rgba(99, 102, 241, 0.1);
}

.organize-recognize-toggle input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.organize-recognize-toggle-switch {
    position: relative;
    flex: 0 0 42px;
    width: 42px;
    height: 24px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.45);
    margin-top: 2px;
    transition: all 0.2s ease;
}

.organize-recognize-toggle-switch::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
    transition: transform 0.2s ease;
}

.organize-recognize-toggle input:checked + .organize-recognize-toggle-switch {
    background: var(--primary);
    box-shadow: 0 10px 20px rgba(124, 58, 237, 0.2);
}

.organize-recognize-toggle input:checked + .organize-recognize-toggle-switch::after {
    transform: translateX(18px);
}

.organize-recognize-toggle input:focus-visible + .organize-recognize-toggle-switch {
    outline: 2px solid rgba(124, 58, 237, 0.36);
    outline-offset: 2px;
}

.organize-recognize-toggle-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.organize-recognize-toggle-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--text-main);
}

.organize-recognize-toggle-desc {
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--text-secondary);
}

html[data-theme="dark"] .organize-recognize-toggle {
    background: rgba(30, 41, 59, 0.72);
    border-color: rgba(129, 140, 248, 0.22);
}

html[data-theme="dark"] .organize-recognize-toggle:hover {
    background: rgba(30, 41, 59, 0.88);
    border-color: rgba(129, 140, 248, 0.34);
}

.organize-recognize-toggle input:disabled + .organize-recognize-toggle-switch,
.organize-recognize-toggle input:disabled ~ .organize-recognize-toggle-text {
    opacity: 0.72;
}

.organize-recognize-hints {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.organize-recognize-hint-chip,
.organize-recognize-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1;
}

.organize-recognize-hint-chip {
    color: var(--primary);
    background: rgba(99, 102, 241, 0.08);
    border: 1px solid rgba(99, 102, 241, 0.16);
}

.organize-retag-search-notice {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid rgba(245, 158, 11, 0.35);
    border-radius: 12px;
    background: rgba(245, 158, 11, 0.1);
    color: var(--text-main);
    font-size: 0.78rem;
    line-height: 1.6;
}

.organize-retag-search-notice > span:first-child {
    flex: 0 0 auto;
    line-height: 1.6;
}

.organize-retag-search-notice strong {
    color: #b45309;
}

html[data-theme="dark"] .organize-retag-search-notice strong {
    color: #fbbf24;
}

.organize-recognize-result-shell {
    flex: 1;
    min-height: 320px;
    overflow: auto;
    border-radius: 20px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(248, 250, 252, 0.92) 100%);
    padding: 18px;
}

html[data-theme="dark"] .organize-recognize-result-shell {
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.72) 0%, rgba(15, 23, 42, 0.92) 100%);
    border-color: rgba(148, 163, 184, 0.16);
}

.organize-recognize-empty,
.organize-recognize-loading,
.organize-recognize-error {
    min-height: 284px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    color: var(--text-sub);
}

.organize-recognize-empty-icon,
.organize-recognize-loading-spinner {
    width: 62px;
    height: 62px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--primary-light);
    color: var(--primary);
    font-size: 1.7rem;
}

.organize-recognize-loading-spinner {
    border: 3px solid rgba(99, 102, 241, 0.18);
    border-top-color: rgba(99, 102, 241, 0.95);
    background: transparent;
    animation: recognize-spin 0.9s linear infinite;
}

@keyframes recognize-spin {
    to {
        transform: rotate(360deg);
    }
}

.organize-recognize-empty-title,
.organize-recognize-loading-title,
.organize-recognize-error-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
}

.organize-recognize-empty-desc,
.organize-recognize-loading-desc,
.organize-recognize-error-desc {
    max-width: 680px;
    line-height: 1.7;
    font-size: 0.9rem;
}

.organize-recognize-error-title {
    color: #dc2626;
}

.organize-recognize-result {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.organize-recognize-hero-card {
    position: relative;
    overflow: hidden;
    border-radius: 20px;
    border: 1px solid rgba(99, 102, 241, 0.12);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(248, 250, 252, 0.88));
}

html[data-theme="dark"] .organize-recognize-hero-card {
    background: linear-gradient(135deg, rgba(30, 41, 59, 0.84), rgba(15, 23, 42, 0.9));
    border-color: rgba(99, 102, 241, 0.18);
}

.organize-recognize-hero-backdrop {
    position: absolute;
    inset: 0;
    opacity: 0.26;
}

.organize-recognize-hero-backdrop::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.78), rgba(15, 23, 42, 0.14));
}

.organize-recognize-hero-backdrop img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.organize-recognize-hero-content {
    position: relative;
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 18px;
    padding: 18px;
    align-items: flex-start;
}

.organize-recognize-hero-poster {
    width: 180px;
    max-width: 100%;
    aspect-ratio: 2 / 3;
    border-radius: 16px;
    overflow: hidden;
    background: rgba(15, 23, 42, 0.08);
    box-shadow: 0 18px 34px rgba(15, 23, 42, 0.2);
}

.organize-recognize-hero-poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.organize-recognize-hero-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--primary);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(236, 72, 153, 0.12));
}

.organize-recognize-hero-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.organize-recognize-hero-status {
    align-self: flex-start;
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.organize-recognize-hero-status.is-success,
.organize-recognize-chip.is-success {
    color: #047857;
    background: rgba(16, 185, 129, 0.14);
    border: 1px solid rgba(16, 185, 129, 0.24);
}

.organize-recognize-hero-status.is-warn,
.organize-recognize-chip.is-warn {
    color: #b45309;
    background: rgba(245, 158, 11, 0.14);
    border: 1px solid rgba(245, 158, 11, 0.24);
}

.organize-recognize-chip.is-info {
    color: var(--primary);
    background: rgba(99, 102, 241, 0.1);
    border: 1px solid rgba(99, 102, 241, 0.18);
}

.organize-recognize-hero-title {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--text-main);
}

.organize-recognize-hero-subtitle {
    font-size: 0.88rem;
    color: var(--text-sub);
    line-height: 1.6;
}

.organize-recognize-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.organize-recognize-overview {
    font-size: 0.9rem;
    color: var(--text-main);
    line-height: 1.8;
    white-space: pre-wrap;
}

.organize-recognize-link-btn {
    align-self: flex-start;
    border-radius: 12px;
    padding: 9px 12px;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--primary);
    background: rgba(99, 102, 241, 0.1);
    border: 1px solid rgba(99, 102, 241, 0.18);
    text-decoration: none;
    transition: all 0.2s ease;
}

.organize-recognize-link-btn:hover {
    background: rgba(99, 102, 241, 0.16);
    border-color: rgba(99, 102, 241, 0.32);
}

.organize-recognize-notes {
    border-radius: 18px;
    border: 1px solid rgba(245, 158, 11, 0.22);
    background: linear-gradient(135deg, rgba(255, 251, 235, 0.95), rgba(255, 247, 237, 0.92));
    padding: 14px 16px;
}

html[data-theme="dark"] .organize-recognize-notes {
    background: linear-gradient(135deg, rgba(69, 26, 3, 0.3), rgba(30, 41, 59, 0.78));
}

.organize-recognize-notes-title {
    font-size: 0.82rem;
    font-weight: 800;
    color: #b45309;
    margin-bottom: 8px;
}

.organize-recognize-notes ul {
    margin: 0;
    padding-left: 18px;
    color: var(--text-main);
    line-height: 1.75;
}

.organize-recognize-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.organize-recognize-card {
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
    padding: 16px;
}

html[data-theme="dark"] .organize-recognize-card {
    background: rgba(15, 23, 42, 0.78);
    border-color: rgba(148, 163, 184, 0.16);
    box-shadow: 0 16px 34px rgba(2, 6, 23, 0.28);
}

.organize-recognize-card-head {
    margin-bottom: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.organize-recognize-card-eyebrow {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-sub);
}

.organize-recognize-card-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
}

.organize-recognize-info-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.organize-recognize-info-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 8px;
    border-bottom: 1px dashed rgba(148, 163, 184, 0.16);
}

.organize-recognize-info-row:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.organize-recognize-info-label {
    flex: 0 0 104px;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-sub);
}

.organize-recognize-info-value {
    flex: 1;
    min-width: 0;
    text-align: right;
    font-size: 0.84rem;
    color: var(--text-main);
    word-break: break-word;
    line-height: 1.65;
}

.organize-recognize-code-block {
    margin-top: 2px;
    border-radius: 14px;
    background: rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(148, 163, 184, 0.14);
    padding: 12px 14px;
}

html[data-theme="dark"] .organize-recognize-code-block {
    background: rgba(15, 23, 42, 0.88);
}

.organize-recognize-code-label {
    font-size: 0.76rem;
    font-weight: 800;
    color: var(--text-sub);
    margin-bottom: 6px;
}

.organize-recognize-code-block code {
    display: block;
    font-family: Consolas, Monaco, 'Courier New', monospace;
    font-size: 0.8rem;
    line-height: 1.7;
    color: var(--text-main);
    white-space: pre-wrap;
    word-break: break-all;
}

.organize-recognize-empty-inline {
    font-size: 0.82rem;
    color: var(--text-sub);
}

.organize-recognize-modal.is-busy .organize-recognize-mask {
    cursor: progress;
}

.organize-retag-meta {
    margin-top: 4px;
    font-size: 0.78rem;
    color: var(--text-sub);
    line-height: 1.55;
}

.organize-retag-results-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.organize-retag-results-title {
    font-size: 0.86rem;
    font-weight: 800;
    color: var(--text-main);
}

.organize-retag-results-tip {
    font-size: 0.76rem;
    color: var(--text-sub);
}

.organize-retag-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.organize-retag-item {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(255, 255, 255, 0.84);
    padding: 12px;
}

html[data-theme="dark"] .organize-retag-item {
    background: rgba(15, 23, 42, 0.78);
}

.organize-retag-poster {
    width: 82px;
    aspect-ratio: 2 / 3;
    border-radius: 12px;
    overflow: hidden;
    background: rgba(15, 23, 42, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-sub);
    font-size: 1.2rem;
}

.organize-retag-poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.organize-retag-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.organize-retag-title {
    font-size: 0.96rem;
    font-weight: 800;
    color: var(--text-main);
    line-height: 1.4;
}

.organize-retag-subtitle {
    font-size: 0.8rem;
    color: var(--text-sub);
    line-height: 1.6;
}

.organize-retag-overview {
    font-size: 0.82rem;
    line-height: 1.7;
    color: var(--text-main);
    max-height: 4.9em;
    overflow: hidden;
}

.organize-retag-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.organize-retag-select-btn {
    border: none;
    border-radius: 12px;
    background: var(--primary);
    color: #fff;
    padding: 9px 14px;
    font-size: 0.8rem;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
}

.organize-retag-select-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.organize-retag-id {
    font-size: 0.72rem;
    color: var(--text-sub);
}

.organize-inline-confirm-modal {
    position: fixed;
    inset: 0;
    z-index: 4100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease;
}

.organize-inline-confirm-modal.is-open {
    opacity: 1;
    pointer-events: auto;
}

.organize-inline-confirm-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.64);
    backdrop-filter: blur(5px);
    opacity: 0;
    transition: opacity 0.22s ease;
}

.organize-inline-confirm-modal.is-open .organize-inline-confirm-backdrop {
    opacity: 1;
}

.organize-inline-confirm-dialog {
    position: relative;
    width: min(560px, calc(100vw - 36px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 22px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.96) 100%);
    box-shadow: 0 30px 72px rgba(15, 23, 42, 0.34);
    transform: translateY(22px) scale(0.985);
    transition: transform 0.22s ease;
}

.organize-inline-confirm-modal.is-open .organize-inline-confirm-dialog {
    transform: translateY(0) scale(1);
}

html[data-theme="dark"] .organize-inline-confirm-dialog {
    border-color: rgba(99, 102, 241, 0.22);
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.98) 0%, rgba(2, 6, 23, 0.96) 100%);
    box-shadow: 0 36px 80px rgba(2, 6, 23, 0.58);
}

.organize-inline-confirm-dialog-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 20px 14px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    background: var(--primary-light);
}

.organize-inline-confirm-dialog-title {
    font-size: 0.98rem;
    font-weight: 800;
    color: var(--text-main);
}

.organize-inline-confirm-dialog-close {
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: rgba(255, 255, 255, 0.72);
    color: var(--text-main);
    border-radius: 12px;
    padding: 7px 10px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: all 0.2s ease;
}

.organize-inline-confirm-dialog-close:hover {
    color: var(--primary);
    border-color: rgba(99, 102, 241, 0.45);
    background: rgba(255, 255, 255, 0.92);
}

html[data-theme="dark"] .organize-inline-confirm-dialog-close {
    background: rgba(15, 23, 42, 0.82);
}

.organize-inline-confirm-dialog-body {
    padding: 18px 20px 0;
}

.organize-inline-confirm-title {
    font-size: 0.92rem;
    font-weight: 800;
    color: var(--text-main);
    margin-bottom: 8px;
}

.organize-inline-confirm-desc {
    font-size: 0.84rem;
    line-height: 1.7;
    color: var(--text-sub);
}

.organize-inline-confirm-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 18px 20px 20px;
}

.organize-inline-confirm-btn {
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 12px;
    padding: 9px 14px;
    font-size: 0.82rem;
    font-weight: 800;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.82);
    color: var(--text-main);
}

.organize-inline-confirm-btn:hover {
    border-color: rgba(99, 102, 241, 0.28);
    color: var(--primary);
}

.organize-inline-confirm-btn.is-primary {
    border: none;
    background: var(--primary);
    color: #fff;
}

.organize-inline-confirm-btn.is-danger {
    border: none;
    background: #dc2626;
    color: #fff;
}

.organize-inline-confirm-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.organize-inline-confirm-modal.is-busy .organize-inline-confirm-backdrop {
    cursor: progress;
}

/* 通知机器人弹窗 */
.notify-bot-inline-wrap {
    margin-top: 12px;
}

.notify-bot-inline-btn {
    border: 1px dashed rgba(99, 102, 241, 0.5);
    background: rgba(99, 102, 241, 0.08);
    color: var(--primary);
    border-radius: 10px;
    font-size: 0.8rem;
    font-weight: 700;
    padding: 8px 12px;
    cursor: pointer;
    transition: all 0.2s;
}

.notify-bot-inline-btn:hover {
    background: rgba(99, 102, 241, 0.16);
    border-color: rgba(99, 102, 241, 0.75);
}

.pttransfer-db-inline-wrap {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.pttransfer-db-top-wrap {
    margin: 0 0 14px;
    padding: 0 4px;
}

.pttransfer-db-inline-btn {
    border: 1px dashed rgba(59, 130, 246, 0.5);
    background: rgba(59, 130, 246, 0.08);
    color: var(--primary);
    border-radius: 10px;
    font-size: 0.8rem;
    font-weight: 700;
    padding: 8px 12px;
    cursor: pointer;
    transition: all 0.2s;
}

.pttransfer-db-inline-btn:hover {
    background: rgba(59, 130, 246, 0.16);
    border-color: rgba(59, 130, 246, 0.72);
}

.pttransfer-db-inline-hint {
    font-size: 0.78rem;
    color: var(--text-sub);
}

/* 目录选择器（频道监控目录ID） */
.directory-selector-inline-wrap {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.directory-selector-inline-btn {
    border: 1px dashed rgba(99, 102, 241, 0.55);
    background: rgba(99, 102, 241, 0.10);
    color: var(--primary);
    border-radius: 10px;
    font-size: 0.82rem;
    font-weight: 700;
    padding: 8px 12px;
    cursor: pointer;
    transition: all 0.2s;
}

.directory-selector-inline-btn:hover {
    background: rgba(99, 102, 241, 0.18);
    border-color: rgba(99, 102, 241, 0.8);
}

.directory-selector-inline-hint {
    font-size: 0.78rem;
    color: var(--text-sub);
}

.directory-selector-mini-input-wrap {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.pttransfer-records-modal {
    position: fixed;
    inset: 0;
    z-index: 4055;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.pttransfer-records-mask {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(3px);
}

.pttransfer-records-panel {
    position: relative;
    width: min(1320px, calc(100vw - 36px));
    max-height: calc(100vh - 36px);
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.24);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.pttransfer-records-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
}

.pttransfer-records-title-wrap h3 {
    margin: 0;
    font-size: 1rem;
    color: var(--text-main);
}

.pttransfer-records-meta {
    margin-top: 6px;
    font-size: 0.8rem;
    color: var(--text-sub);
    word-break: break-all;
}

.pttransfer-records-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pttransfer-records-refresh-btn,
.pttransfer-records-close-btn {
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-main);
    border-radius: 8px;
    padding: 6px 10px;
    cursor: pointer;
    font-size: 0.85rem;
}

.pttransfer-records-refresh-btn:hover,
.pttransfer-records-close-btn:hover {
    border-color: rgba(99, 102, 241, 0.45);
    color: var(--primary);
}

.pttransfer-records-content {
    padding: 12px 16px 16px;
    overflow: auto;
    flex: 1;
}

.pttransfer-records-state {
    padding: 28px 12px;
    text-align: center;
    color: var(--text-sub);
}

.pttransfer-records-table-wrap {
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: auto;
}

.pttransfer-records-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
    font-size: 0.83rem;
}

.pttransfer-records-table th,
.pttransfer-records-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
    word-break: break-word;
}

.pttransfer-records-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bg-card);
}

.pttransfer-records-table tbody tr:nth-child(2n) {
    background: rgba(127, 127, 127, 0.04);
}

.pttransfer-records-table tbody tr:hover {
    background: rgba(99, 102, 241, 0.06);
}

.pttransfer-records-table th:nth-child(1),
.pttransfer-records-table td:nth-child(1) {
    width: 170px;
}

.pttransfer-records-table th:nth-child(2),
.pttransfer-records-table td:nth-child(2) {
    width: 92px;
}

.pttransfer-records-table th:nth-child(3),
.pttransfer-records-table td:nth-child(3) {
    width: 280px;
}

.pttransfer-records-table th:nth-child(4),
.pttransfer-records-table td:nth-child(4) {
    width: 110px;
}

.pttransfer-records-table th:nth-child(5),
.pttransfer-records-table td:nth-child(5) {
    width: 120px;
}

.pttransfer-platform-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    padding: 2px 10px;
    border-radius: 999px;
    background: rgba(99, 102, 241, 0.12);
    color: var(--primary);
    font-weight: 700;
}

.pttransfer-folder-id-mut {
    margin-top: 4px;
    font-size: 0.74rem;
    color: var(--text-sub);
}

.directory-selector-mini-input-wrap .form-input,
.directory-selector-mini-input-wrap .kv-value-input,
.directory-selector-mini-input-wrap .vl-input {
    flex: 1;
    min-width: 0;
}

.directory-selector-mini-btn {
    border: 1px dashed rgba(99, 102, 241, 0.5);
    background: rgba(99, 102, 241, 0.12);
    color: var(--primary);
    border-radius: 8px;
    padding: 6px 10px;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: all 0.2s;
}

.directory-selector-mini-btn:hover {
    border-color: rgba(99, 102, 241, 0.75);
    background: rgba(99, 102, 241, 0.2);
}

.directory-selector-modal {
    position: fixed;
    inset: 0;
    /* 目录选择器既可独立打开，也会从实用工具主弹窗中继续打开。
       主弹窗层级为 9999；旧值 5200 会让二级选择器被父弹窗盖住。 */
    z-index: 10020;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.directory-selector-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.62);
    backdrop-filter: blur(2px);
}

.directory-selector-panel {
    position: relative;
    width: min(980px, calc(100vw - 36px));
    max-height: calc(100vh - 36px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--bg-card);
    box-shadow: 0 26px 50px rgba(0, 0, 0, 0.28);
}

.directory-selector-head {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
}

.directory-selector-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
}

.directory-selector-subtitle {
    margin-top: 5px;
    font-size: 0.8rem;
    color: var(--text-sub);
}

.directory-selector-close-btn {
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-main);
    border-radius: 8px;
    padding: 4px 10px;
    cursor: pointer;
    font-size: 0.9rem;
}

.directory-selector-close-btn:hover {
    border-color: rgba(99, 102, 241, 0.45);
    color: var(--primary);
}

.directory-selector-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--border);
}

.directory-selector-breadcrumb {
    min-width: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}

.directory-selector-crumb-btn {
    border: 1px solid rgba(148, 163, 184, 0.3);
    background: rgba(148, 163, 184, 0.1);
    color: var(--text-main);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 0.76rem;
    cursor: pointer;
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.directory-selector-crumb-btn.active {
    border-color: rgba(99, 102, 241, 0.55);
    background: rgba(99, 102, 241, 0.16);
    color: var(--primary);
}

.directory-selector-crumb-sep {
    color: var(--text-sub);
    font-size: 0.85rem;
}

.directory-selector-refresh-btn {
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: rgba(148, 163, 184, 0.1);
    color: var(--text-main);
    border-radius: 8px;
    padding: 6px 12px;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
}

.directory-selector-refresh-btn:hover:not(:disabled) {
    border-color: rgba(99, 102, 241, 0.45);
    color: var(--primary);
}

.directory-selector-refresh-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.directory-selector-current {
    padding: 10px 16px;
    font-size: 0.82rem;
    color: var(--text-sub);
    border-bottom: 1px solid var(--border);
}

.directory-selector-list {
    flex: 1;
    overflow: auto;
    padding: 10px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.directory-selector-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 10px;
    background: rgba(148, 163, 184, 0.08);
}

.directory-selector-enter-btn {
    flex: 1;
    min-width: 0;
    border: none;
    background: transparent;
    text-align: left;
    color: var(--text-main);
    display: flex;
    flex-direction: column;
    gap: 4px;
    cursor: pointer;
    padding: 4px;
}

.directory-selector-row-name {
    font-size: 0.86rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.directory-selector-row-id {
    font-size: 0.78rem;
    color: var(--text-sub);
}

.directory-selector-pick-btn {
    border: 1px solid rgba(99, 102, 241, 0.45);
    background: rgba(99, 102, 241, 0.12);
    color: var(--primary);
    border-radius: 8px;
    padding: 6px 12px;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    flex-shrink: 0;
}

.directory-selector-pick-btn:hover {
    background: rgba(99, 102, 241, 0.2);
}

.directory-selector-loading,
.directory-selector-empty,
.directory-selector-error {
    padding: 14px;
    border-radius: 10px;
    font-size: 0.84rem;
}

.directory-selector-loading,
.directory-selector-empty {
    border: 1px dashed rgba(148, 163, 184, 0.35);
    color: var(--text-sub);
    background: rgba(148, 163, 184, 0.08);
}

.directory-selector-error {
    border: 1px solid rgba(239, 68, 68, 0.38);
    color: #ef4444;
    background: rgba(239, 68, 68, 0.12);
}

.directory-selector-foot {
    padding: 12px 16px 14px;
    border-top: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.directory-selector-action-btn {
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: rgba(148, 163, 184, 0.1);
    color: var(--text-main);
    border-radius: 8px;
    padding: 8px 14px;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}

.directory-selector-action-btn.primary {
    border-color: rgba(99, 102, 241, 0.45);
    background: rgba(99, 102, 241, 0.14);
    color: var(--primary);
}

.directory-selector-action-btn:hover:not(:disabled) {
    border-color: rgba(99, 102, 241, 0.45);
    color: var(--primary);
}

.directory-selector-action-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.notify-bot-modal {
    position: fixed;
    inset: 0;
    z-index: 5100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.notify-bot-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.62);
    backdrop-filter: blur(2px);
}

.notify-bot-panel {
    position: relative;
    width: min(1060px, calc(100vw - 36px));
    max-height: calc(100vh - 36px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--bg-card);
    box-shadow: 0 26px 50px rgba(0, 0, 0, 0.28);
}

.notify-bot-head {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
}

.notify-bot-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
}

.notify-bot-subtitle {
    margin-top: 5px;
    font-size: 0.8rem;
    color: var(--text-sub);
}

.notify-bot-close-btn {
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-main);
    border-radius: 8px;
    padding: 4px 10px;
    cursor: pointer;
}

.notify-bot-close-btn:hover {
    border-color: rgba(99, 102, 241, 0.45);
    color: var(--primary);
}

.notify-bot-body {
    padding: 12px 16px;
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: 12px;
    overflow: auto;
    flex: 1;
}

.notify-bot-panel-block {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgba(148, 163, 184, 0.08);
    padding: 12px;
    min-width: 0;
}

html:not([data-theme="dark"]) .notify-bot-panel-block {
    background: #f8fafc;
}

.notify-bot-panel-block h3 {
    margin: 0 0 10px;
    font-size: 0.9rem;
    color: var(--text-main);
}

.notify-bot-source-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.notify-bot-source-card {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px;
    background: var(--bg-card);
}

.notify-bot-source-title {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 8px;
}

.notify-bot-bind-row {
    display: grid;
    grid-template-columns: 120px minmax(140px, 1fr);
    gap: 8px;
    align-items: center;
}

.notify-bot-bind-row + .notify-bot-bind-row {
    margin-top: 8px;
}

.notify-bot-bind-label {
    font-size: 0.78rem;
    color: var(--text-sub);
}

.notify-bot-custom-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.notify-bot-custom-card {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px;
    background: var(--bg-card);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.notify-bot-custom-card.is-system {
    border-color: rgba(59, 130, 246, 0.35);
    background: rgba(59, 130, 246, 0.05);
}

.notify-bot-custom-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.notify-bot-custom-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-main);
}

.notify-bot-system-badge {
    border: 1px solid rgba(59, 130, 246, 0.4);
    color: #1d4ed8;
    background: rgba(59, 130, 246, 0.1);
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 0.72rem;
    font-weight: 700;
}

.notify-bot-system-note {
    font-size: 0.76rem;
    color: var(--text-sub);
    line-height: 1.45;
}

.notify-bot-remove-btn {
    border: 1px solid rgba(239, 68, 68, 0.4);
    color: #dc2626;
    background: rgba(239, 68, 68, 0.08);
    border-radius: 8px;
    padding: 4px 10px;
    font-size: 0.78rem;
    cursor: pointer;
}

.notify-bot-remove-btn:hover {
    background: rgba(239, 68, 68, 0.14);
}

.notify-bot-input {
    font-size: 0.82rem;
}

.notify-bot-add-btn {
    border: 1px dashed rgba(99, 102, 241, 0.5);
    background: rgba(99, 102, 241, 0.08);
    color: var(--primary);
    border-radius: 10px;
    padding: 10px;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}

.notify-bot-add-btn:hover {
    background: rgba(99, 102, 241, 0.16);
}

.notify-bot-empty {
    padding: 10px;
    border: 1px dashed var(--border);
    border-radius: 10px;
    font-size: 0.8rem;
    color: var(--text-sub);
    text-align: center;
}

.notify-bot-help {
    margin-top: 8px;
    font-size: 0.78rem;
    color: var(--text-sub);
    line-height: 1.5;
}

.notify-bot-help code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.76rem;
}

.notify-bot-foot {
    padding: 10px 16px 14px;
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.notify-bot-status {
    min-height: 20px;
    font-size: 0.8rem;
    color: var(--text-sub);
}

.notify-bot-status.success {
    color: #059669;
}

.notify-bot-status.error {
    color: #dc2626;
}

.notify-bot-actions {
    display: inline-flex;
    gap: 8px;
}

.notify-bot-btn {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 7px 12px;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}

.notify-bot-btn.ghost {
    background: transparent;
    color: var(--text-main);
}

.notify-bot-btn.primary {
    border-color: transparent;
    background: var(--primary);
    color: #fff;
}

.notify-bot-btn.primary:hover {
    background: var(--primary-hover);
}

.notify-bot-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* 可视化过滤器弹窗 */
.vf-modal {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.vf-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.62);
    backdrop-filter: blur(3px);
}

.vf-modal-panel {
    position: relative;
    width: min(1380px, calc(100vw - 36px));
    max-height: calc(100vh - 36px);
    height: calc(100vh - 36px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--bg-card);
    box-shadow: 0 26px 50px rgba(0, 0, 0, 0.28);
}

.vf-modal-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
}

.vf-modal-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
}

.vf-modal-subtitle {
    margin-top: 4px;
    font-size: 0.8rem;
    color: var(--text-sub);
}

.vf-close-btn {
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-main);
    border-radius: 8px;
    padding: 3px 10px;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1.2;
    transition: all 0.2s;
}

.vf-close-btn:hover {
    border-color: rgba(99, 102, 241, 0.45);
    color: var(--primary);
}

.vf-modal-body {
    padding: 12px 14px 16px;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.vf-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 340px);
    align-items: start;
    gap: 14px;
}

.vf-side-column {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

.vf-panel {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgba(148, 163, 184, 0.08);
    padding: 14px;
    min-width: 0;
}

html:not([data-theme="dark"]) .vf-panel {
    background: #f8fafc;
}

.vf-rules-panel {
    display: flex;
    flex-direction: column;
    min-height: min(640px, calc(100vh - 285px));
    border-color: rgba(99, 102, 241, 0.28);
    background: var(--bg-card);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

html:not([data-theme="dark"]) .vf-rules-panel {
    background: #fff;
}

.vf-rules-panel-head {
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
}

.vf-panel-kicker {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 3px 8px;
    background: var(--primary-light);
    color: var(--primary);
    font-size: 0.7rem;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}

.vf-panel h3 {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--text-main);
}

.vf-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
}

.vf-scene-panel {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    column-gap: 14px;
    row-gap: 4px;
    align-items: center;
    padding: 10px 14px;
}

.vf-scene-panel > h3 {
    grid-row: 1 / span 2;
    align-self: center;
}

.vf-scene-panel .vf-scene-tabs {
    margin-top: 0;
}

.vf-scene-panel .vf-scene-desc {
    margin-top: 0;
}

.vf-scene-panel .vf-parse-hint {
    grid-column: 1 / -1;
    margin-top: 6px;
}

.vf-header-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.vf-scene-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.vf-scene-tab-btn {
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
}

.vf-scene-tab-btn:hover {
    border-color: rgba(99, 102, 241, 0.45);
    color: var(--primary);
}

.vf-scene-tab-btn.active {
    border-color: transparent;
    background: var(--primary);
    color: #fff;
}

.vf-scene-desc {
    margin-top: 8px;
    font-size: 0.78rem;
    color: var(--text-sub);
}

.vf-parse-hint {
    margin-top: 8px;
    border: 1px dashed rgba(245, 158, 11, 0.5);
    background: rgba(245, 158, 11, 0.10);
    color: #b45309;
    border-radius: 10px;
    padding: 8px 10px;
    font-size: 0.78rem;
    line-height: 1.45;
}

html[data-theme="dark"] .vf-parse-hint {
    color: #facc15;
    border-color: rgba(250, 204, 21, 0.45);
    background: rgba(234, 179, 8, 0.14);
}

.vf-search-row {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) 130px auto;
    gap: 8px;
    align-items: center;
    margin-bottom: 8px;
}

.vf-rules-panel .vf-custom-add-wrap {
    margin-bottom: 10px;
    padding: 10px;
    border: 1px dashed rgba(99, 102, 241, 0.35);
    border-radius: 10px;
    background: rgba(99, 102, 241, 0.045);
}

.vf-rules-panel .vf-custom-add-wrap .vf-label {
    margin-bottom: 6px;
}

.vf-rules-panel .vf-custom-add-wrap .vf-search-row {
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 0;
}

.vf-rules-panel .vf-custom-add-wrap .vf-inline-status {
    min-height: 0;
    margin: 6px 0 0;
}

.vf-search-panel .vf-search-row {
    grid-template-columns: minmax(0, 1fr) 104px auto;
}

.vf-search-panel .vf-inline-status {
    min-height: 18px;
    margin-bottom: 6px;
}

.vf-select {
    min-width: 0;
}

.vf-inline-status {
    min-height: 20px;
    font-size: 0.78rem;
    color: var(--text-sub);
    margin-bottom: 8px;
}

.vf-search-results {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 58vh;
    overflow: auto;
    padding-right: 2px;
}

.vf-search-panel .vf-search-results {
    max-height: 250px;
}

.vf-result-card {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg-card);
    padding: 8px;
    display: grid;
    grid-template-columns: 62px 1fr auto;
    gap: 9px;
    align-items: start;
}

.vf-result-poster {
    width: 62px;
    aspect-ratio: 2 / 3;
    border-radius: 8px;
    overflow: hidden;
    background: rgba(148, 163, 184, 0.2);
    color: var(--text-sub);
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.vf-result-poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.vf-result-title {
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--text-main);
}

.vf-result-meta {
    margin-top: 3px;
    font-size: 0.74rem;
    color: var(--text-sub);
}

.vf-result-overview {
    margin-top: 6px;
    font-size: 0.77rem;
    color: var(--text-sub);
    line-height: 1.45;
    display: -webkit-box;
    line-clamp: 2;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.vf-search-panel .vf-result-card {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 8px;
}

.vf-search-panel .vf-result-poster {
    width: 46px;
}

.vf-search-panel .vf-result-card .vf-btn {
    grid-column: 2;
    justify-self: flex-start;
    padding: 6px 9px;
}

.vf-search-panel .vf-result-overview {
    display: none;
}

.vf-selected-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 58vh;
    overflow: auto;
}

.vf-rules-panel .vf-selected-list {
    flex: 1 1 auto;
    min-height: 220px;
    max-height: calc(100vh - 330px);
    padding-right: 4px;
}

.vf-selected-card {
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg-card);
    padding: 10px;
    display: grid;
    grid-template-columns: 68px 1fr;
    gap: 10px;
    min-width: 0;
}

.vf-rules-panel .vf-selected-card {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 12px;
    padding: 12px;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.035);
}

.vf-selected-poster {
    width: 68px;
    aspect-ratio: 2 / 3;
    border-radius: 8px;
    overflow: hidden;
    background: rgba(148, 163, 184, 0.2);
    color: var(--text-sub);
    font-size: 0.72rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.vf-rules-panel .vf-selected-poster {
    width: 78px;
}

.vf-selected-poster-empty {
    border: 1px solid rgba(99, 102, 241, 0.24);
    background: linear-gradient(145deg, rgba(99, 102, 241, 0.16), rgba(56, 189, 248, 0.14));
    color: var(--primary);
    font-size: 1.35rem;
    font-weight: 800;
}

.vf-selected-poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.vf-selected-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.vf-card-input {
    font-size: 0.82rem;
    padding-top: 9px;
    padding-bottom: 9px;
}

.vf-card-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.vf-card-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.vf-card-field-label {
    font-size: 0.78rem;
    color: var(--text-sub);
}

.vf-card-select {
    min-width: 0;
    font-size: 0.82rem;
    padding-top: 9px;
    padding-bottom: 9px;
}

.vf-selected-card-custom {
    border-style: dashed;
    border-color: rgba(99, 102, 241, 0.35);
    grid-template-columns: 56px minmax(0, 1fr);
}

.vf-selected-card-custom .vf-selected-poster {
    width: 56px;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
    font-size: 0.95rem;
    font-weight: 700;
}

.vf-selected-card-custom .vf-selected-footer {
    justify-content: flex-start;
}

html[data-theme="dark"] .vf-selected-card-custom {
    border-color: rgba(129, 140, 248, 0.52);
    background: rgba(99, 102, 241, 0.08);
}

.vf-selected-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.vf-year-wrap {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    color: var(--text-sub);
}

.vf-required-keyword-wrap {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    color: var(--text-sub);
}

.vf-year-input {
    width: 90px;
    min-width: 0;
    font-size: 0.8rem;
    padding: 7px 10px;
}

.vf-required-keyword-input {
    width: 128px;
    min-width: 0;
    font-size: 0.8rem;
    padding: 7px 10px;
}

.vf-all-mode-card {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px dashed rgba(16, 185, 129, 0.45);
    border-radius: 10px;
    background: rgba(16, 185, 129, 0.08);
    color: #065f46;
    padding: 10px 12px;
    margin-bottom: 10px;
}

.vf-all-mode-icon {
    font-size: 1.2rem;
}

.vf-all-mode-title {
    font-size: 0.86rem;
    font-weight: 800;
}

.vf-all-mode-desc {
    margin-top: 2px;
    font-size: 0.76rem;
    line-height: 1.45;
}

html[data-theme="dark"] .vf-all-mode-card {
    color: #a7f3d0;
    border-color: rgba(16, 185, 129, 0.55);
    background: rgba(16, 185, 129, 0.16);
}

.vf-mode-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.vf-radio-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    color: var(--text-main);
}

.vf-label {
    display: block;
    font-size: 0.78rem;
    color: var(--text-sub);
    margin-bottom: 6px;
}

.vf-textarea {
    width: 100%;
    min-height: 145px;
    max-height: 280px;
    resize: none;
    border: 1px solid rgba(148, 163, 184, 0.25);
    background: rgba(148, 163, 184, 0.08);
    color: var(--text-main);
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 0.8rem;
    line-height: 1.5;
    font-family: "Cascadia Code", "Consolas", monospace;
}

.vf-preview-panel .vf-textarea {
    min-height: 100px;
    max-height: 140px;
    padding: 9px 10px;
    font-size: 0.75rem;
}

.vf-preview-panel .vf-inline-status {
    min-height: 18px;
    margin: 7px 0 0;
}

html:not([data-theme="dark"]) .vf-textarea {
    border-color: #e5e7eb;
    background: #f8fafc;
}

.vf-textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light);
}

.vf-save-actions {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
}

.vf-preview-panel .vf-save-actions {
    margin-top: 8px;
    gap: 8px;
}

.vf-save-tip {
    font-size: 0.8rem;
    line-height: 1.45;
    color: #92400e;
    background: rgba(251, 191, 36, 0.18);
    border: 1px solid rgba(251, 191, 36, 0.55);
    border-radius: 10px;
    padding: 8px 10px;
}

.vf-preview-panel .vf-save-tip {
    padding: 7px 8px;
    font-size: 0.73rem;
    line-height: 1.4;
}

.vf-save-actions .vf-btn {
    align-self: flex-end;
}

.vf-preview-panel .vf-save-actions .vf-btn {
    align-self: stretch;
}

.vf-save-tip strong {
    color: #b45309;
}

html[data-theme="dark"] .vf-save-tip {
    color: #fde68a;
    background: rgba(245, 158, 11, 0.18);
    border-color: rgba(251, 191, 36, 0.5);
}

html[data-theme="dark"] .vf-save-tip strong {
    color: #fcd34d;
}

.vf-btn {
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    border-radius: 10px;
    padding: 8px 12px;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
}

.vf-btn:hover {
    transform: translateY(-1px);
}

.vf-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none;
}

.vf-btn-primary {
    border-color: transparent;
    background: var(--primary);
    color: #fff;
}

.vf-btn-primary:hover:not(:disabled) {
    background: var(--primary-hover);
}

.vf-btn-ghost {
    border-style: dashed;
    color: var(--primary);
}

.vf-btn-ghost:hover:not(:disabled) {
    border-color: var(--primary);
    background: var(--primary-light);
}

.vf-btn-danger {
    border-color: rgba(239, 68, 68, 0.35);
    color: #dc2626;
    background: rgba(239, 68, 68, 0.08);
}

.vf-btn-danger:hover:not(:disabled) {
    background: rgba(239, 68, 68, 0.14);
}

html[data-theme="dark"] .vf-btn-danger {
    color: #fca5a5;
    border-color: rgba(239, 68, 68, 0.45);
    background: rgba(239, 68, 68, 0.14);
}

.vf-empty {
    border: 1px dashed var(--border);
    border-radius: 10px;
    padding: 12px;
    text-align: center;
    font-size: 0.8rem;
    color: var(--text-sub);
    background: rgba(148, 163, 184, 0.05);
}

@media (max-width: 960px) {
    .vf-columns {
        grid-template-columns: minmax(0, 1fr) minmax(280px, 32vw);
    }
}

@media (max-width: 880px) {
    .vf-columns {
        grid-template-columns: 1fr;
    }

    .vf-side-column {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vf-rules-panel {
        min-height: 0;
    }

    .vf-search-results,
    .vf-selected-list {
        max-height: 320px;
    }

    .vf-rules-panel .vf-selected-list {
        min-height: 0;
        max-height: 320px;
    }
}

@media (max-width: 640px) {
    .vf-side-column {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .vf-modal {
        align-items: flex-start;
        padding: calc(env(safe-area-inset-top) + 44px) 8px calc(env(safe-area-inset-bottom) + 8px);
    }

    .vf-modal-panel {
        width: calc(100vw - 10px);
        max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 52px);
        height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 52px);
        border-radius: 10px;
    }

    .vf-modal-head,
    .vf-modal-body {
        padding: 10px;
    }

    .vf-modal-head {
        padding-top: 12px;
    }

    .vf-search-row {
        grid-template-columns: 1fr;
    }

    .vf-search-panel .vf-search-row,
    .vf-rules-panel .vf-custom-add-wrap .vf-search-row {
        grid-template-columns: 1fr;
    }

    .vf-scene-panel {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .vf-scene-panel > h3 {
        grid-row: auto;
    }

    .vf-result-card {
        grid-template-columns: 54px 1fr;
    }

    .vf-result-card .vf-btn {
        grid-column: 1 / -1;
        justify-self: flex-end;
    }

    .vf-selected-card {
        grid-template-columns: 56px 1fr;
    }

    .vf-rules-panel .vf-selected-card {
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 10px;
        padding: 10px;
    }

    .vf-rules-panel .vf-selected-poster {
        width: 56px;
    }

    .vf-search-panel .vf-result-card .vf-btn {
        grid-column: 1 / -1;
        justify-self: flex-end;
    }

    .vf-card-row {
        grid-template-columns: 1fr;
    }

    .vf-year-wrap {
        width: 100%;
    }

    .vf-required-keyword-wrap {
        width: 100%;
    }

    .vf-required-keyword-input {
        flex: 1;
    }

    .vf-inline-preview {
        min-height: 82px;
    }

    .notify-bot-modal {
        align-items: flex-start;
        padding: calc(env(safe-area-inset-top) + 44px) 8px calc(env(safe-area-inset-bottom) + 8px);
    }

    .directory-selector-modal {
        align-items: flex-start;
        /* 手机上继续下移一些，避免顶部关闭按钮被遮挡 */
        padding: 8px 8px calc(env(safe-area-inset-bottom) + 8px);
        padding-top: calc(env(safe-area-inset-top) + 88px);
    }

    .directory-selector-panel {
        width: calc(100vw - 10px);
        /* 下方区域拉长：移动端固定一个更高的面板高度 */
        height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 96px);
        max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 96px);
        border-radius: 10px;
    }

    .notify-bot-panel {
        width: calc(100vw - 10px);
        max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 52px);
        border-radius: 10px;
    }

    .notify-bot-body {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 10px;
    }

    .notify-bot-bind-row {
        grid-template-columns: 1fr;
    }
}

html[data-theme="dark"] .transfer-status-badge.status-success {
    color: #6ee7b7;
    background: rgba(16, 185, 129, 0.2);
    border-color: rgba(16, 185, 129, 0.35);
}

html[data-theme="dark"] .transfer-status-badge.status-unrecognized {
    color: #fdba74;
    background: rgba(249, 115, 22, 0.2);
    border-color: rgba(249, 115, 22, 0.35);
}

html[data-theme="dark"] .transfer-status-badge.status-failed {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.2);
    border-color: rgba(239, 68, 68, 0.35);
}

html[data-theme="dark"] .transfer-status-badge.status-skipped {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.2);
    border-color: rgba(245, 158, 11, 0.35);
}

html[data-theme="dark"] .transfer-status-badge.status-ignored {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.2);
    border-color: rgba(245, 158, 11, 0.35);
}

html[data-theme="dark"] .transfer-status-badge.status-deleted {
    color: #fda4af;
    background: rgba(244, 63, 94, 0.2);
    border-color: rgba(244, 63, 94, 0.35);
}

html[data-theme="dark"] .transfer-status-badge.status-replace {
    color: #93c5fd;
    background: rgba(59, 130, 246, 0.2);
    border-color: rgba(59, 130, 246, 0.35);
}

html[data-theme="dark"] .transfer-status-badge.status-unknown {
    color: #d1d5db;
    background: rgba(148, 163, 184, 0.2);
    border-color: rgba(148, 163, 184, 0.35);
}

@media (max-width: 768px) {
    .organize-batch-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .organize-batch-toolbar-actions,
    .organize-batch-toolbar-actions-right {
        width: 100%;
        justify-content: stretch;
    }

    .organize-batch-toolbar-actions .transfer-history-refresh-btn,
    .organize-batch-toolbar-actions-right .transfer-history-refresh-btn {
        flex: 1 1 0;
    }

    .organize-clear-modal {
        align-items: flex-start;
        padding: max(calc(env(safe-area-inset-top) + 8px), calc(var(--mobile-top-bar-offset, 88px) - 8px)) 10px calc(env(safe-area-inset-bottom) + 12px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .transfer-history-actions {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .transfer-history-refresh-btn {
        padding: 7px 10px;
    }

    .transfer-history-updated {
        width: 100%;
    }

    .organize-recognize-modal {
        align-items: flex-start;
        padding: max(calc(env(safe-area-inset-top) + 8px), calc(var(--mobile-top-bar-offset, 88px) - 8px)) 10px calc(env(safe-area-inset-bottom) + 12px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .organize-recognize-panel {
        width: calc(100vw - 20px);
        max-height: none;
    }

    .organize-inline-confirm-modal {
        align-items: flex-start;
        padding: max(calc(env(safe-area-inset-top) + 8px), calc(var(--mobile-top-bar-offset, 88px) - 8px)) 10px calc(env(safe-area-inset-bottom) + 12px);
    }

    .organize-inline-confirm-dialog {
        width: calc(100vw - 20px);
        border-radius: 16px;
    }

    .organize-inline-confirm-dialog-head,
    .organize-inline-confirm-dialog-body,
    .organize-inline-confirm-actions {
        padding-left: 16px;
        padding-right: 16px;
    }

    .organize-inline-confirm-actions {
        flex-direction: column-reverse;
    }

    .organize-inline-confirm-btn {
        width: 100%;
    }

    .organize-recognize-header {
        padding: 16px 16px 12px;
    }

    .organize-recognize-body {
        padding: 14px 16px 16px;
    }

    .organize-recognize-input-row {
        flex-direction: column;
        align-items: stretch;
    }

    .organize-recognize-submit-btn {
        width: 100%;
    }

    .organize-recognize-result-shell {
        padding: 14px;
    }

    .organize-recognize-hero-content {
        grid-template-columns: 1fr;
    }

    .organize-recognize-hero-poster {
        width: min(180px, 46vw);
        justify-self: center;
    }

    .organize-recognize-grid {
        grid-template-columns: 1fr;
    }

    .organize-recognize-info-row {
        flex-direction: column;
    }

    .organize-recognize-info-label,
    .organize-recognize-info-value {
        flex: none;
        text-align: left;
    }

    .bot-cmd-row-main {
        flex-wrap: wrap;
        gap: 6px;
    }

    .bot-cmd-switch {
        min-width: 0;
    }

    .bot-cmd-command {
        min-width: 0;
    }

    .bot-cmd-desc {
        min-width: 0;
        width: 100%;
    }

    .proxy-settings-actions {
        width: 100%;
        justify-content: space-between;
    }

    .proxy-settings-btn {
        flex: 1;
        min-width: 0;
    }

    .proxy-settings-input {
        max-width: none;
    }

    .proxy-settings-results-table th,
    .proxy-settings-results-table td {
        white-space: normal;
    }

    .transfer-pagination {
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .transfer-filter-item {
        width: 100%;
    }

    .transfer-status-select {
        width: 100%;
    }

    .transfer-filter-item-keyword {
        margin-left: 0;
    }

    .transfer-result-input {
        width: 100%;
        min-width: 0;
    }

    .organize-clear-field-row {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    .organize-clear-date-cards {
        grid-template-columns: 1fr;
    }

    .organize-clear-field-input {
        min-width: 0;
        width: 100%;
    }

    .organize-clear-calendar-actions {
        flex-direction: column;
    }

    .organize-clear-panel {
        width: calc(100vw - 20px);
        max-height: calc(100dvh - max(env(safe-area-inset-top), var(--mobile-top-bar-offset, 88px)) - env(safe-area-inset-bottom) - 12px);
        margin: 0 auto;
        border-radius: 16px;
    }

    .organize-clear-body {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .organize-detail-panel {
        width: calc(100vw - 14px);
        max-height: calc(100vh - 14px);
        border-radius: 10px;
    }

    .organize-detail-toolbar {
        width: 100%;
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .organize-detail-actions {
        width: 100%;
    }

    .organize-detail-action-btn {
        flex: 1 1 0;
        text-align: center;
    }

    .organize-card-head {
        flex-wrap: wrap;
    }

    .organize-detail-header,
    .organize-detail-filters,
    .organize-detail-content,
    .organize-detail-pagination {
        padding-left: 10px;
        padding-right: 10px;
    }

    .organize-retag-item {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .organize-retag-actions {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .organize-retag-select-btn {
        width: 100%;
    }
}

/* Toast */
.toast-container {
    position: fixed;
    top: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2000;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.toast {
    background: #1f2937;
    color: white;
    padding: 10px 24px;
    border-radius: 99px;
    font-size: 0.9rem;
    font-weight: 500;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    animation: fadeDown 0.3s;
}

.toast.toast-loading {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.toast-spinner {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    border: 2px solid rgba(255, 255, 255, 0.36);
    border-top-color: #fff;
    border-radius: 50%;
    animation: toast-spin 0.7s linear infinite;
}

.toast.toast-detailed {
    width: min(880px, calc(100vw - 32px));
    max-width: calc(100vw - 32px);
    max-height: min(70vh, 640px);
    border-radius: 16px;
    padding: 14px 18px;
    line-height: 1.55;
    white-space: pre-line;
    overflow-wrap: anywhere;
    overflow-y: auto;
}

@keyframes fadeDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes toast-spin {
    to {
        transform: rotate(360deg);
    }
}

/* SSH 终端容器 */
.ssh-terminal-container {
    background: #000000;
    padding: 10px 10px 26px;
    border-radius: var(--radius-l);
    box-shadow: var(--shadow-card);
    overflow: hidden;
    height: 600px;
    /* 固定高度，或者根据需要调整 */
    position: relative;
    box-sizing: border-box;
}

.ssh-terminal-stage {
    width: 100%;
    height: 100%;
    min-height: 0;
}

/* 隐藏 xterm 的滚动条，使用容器的 */
.xterm-viewport {
    overflow-y: auto !important;
}

/* ====== SSH 头部美化 ====== */
.ssh-header {
    display: flex;
    justify-content: space-between;
    /* 左右对齐 */
    align-items: center;
    /* 垂直居中 */
    margin-bottom: 20px;
    /* 增加底部间距 */
    padding: 0 4px;
    flex-wrap: wrap;
    /* 手机端自动换行 */
    gap: 12px;
}

/* 左侧标题区域对齐 */
.ssh-header-main {
    display: flex;
    align-items: center;
    /* 垂直居中核心代码 */
    gap: 10px;
}

.ssh-header-icon {
    font-size: 1.6rem;
    line-height: 1;
    /* 固定行高，减少上下间隙 */

    /* 让图标自身居中，并微调视觉位置 */
    display: flex;
    align-items: center;
    justify-content: center;

    /* 微调：Emoji 视觉上通常偏高，往下压 1-2px 会更协调 */
    transform: translateY(2px);

    /* 阴影增加立体感 */
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.1));
}

.ssh-title {
    font-size: 1.25rem;
    font-weight: 800;
    color: #111827;
    letter-spacing: -0.5px;
    line-height: 1;
    /* 保持标题行高紧凑 */

    /* 标题渐变文字 */
    background: linear-gradient(135deg, #1f2937 0%, #4b5563 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

html[data-theme="dark"] .ssh-title {
    background: linear-gradient(135deg, #e5e7eb 0%, #9ca3af 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* 右侧（或下方）的安全提示胶囊 */
.ssh-tip-box {
    display: flex;
    align-items: center;
    gap: 8px;
    background-color: #ecfdf5;
    /* 淡绿色背景 (安全感) */
    border: 1px solid #d1fae5;
    padding: 6px 12px;
    border-radius: 99px;
    /* 胶囊形状 */
    font-size: 0.8rem;
    color: #047857;
    /* 深绿色文字 */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
    max-width: 100%;
}

html[data-theme="dark"] .ssh-tip-box {
    background-color: rgba(16, 185, 129, 0.15);
    border-color: rgba(16, 185, 129, 0.25);
    color: #6ee7b7;
}

.ssh-tip-icon {
    font-size: 1rem;
}

.ssh-tip-text b {
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-decoration-color: #10b981;
}

/* 移动端适配：变为垂直排列 */
@media (max-width: 600px) {
    .ssh-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .ssh-tip-box {
        width: 100%;
        border-radius: 8px;
        /* 手机上改圆角矩形 */
        justify-content: center;
    }
}

/* =========================================
   SSH 配置栏样式优化 (Flex 布局)
   ========================================= */
.ssh-config {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-l);
    box-shadow: var(--shadow-card);
    padding: 20px;

    /* 改用 Flex 布局，自动换行，对齐底部 */
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: flex-end;
    /* 让按钮和输入框底部对齐 */

    margin-bottom: 16px;
}

.ssh-profile-bar {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-l);
    box-shadow: var(--shadow-card);
    padding: 14px 16px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.ssh-profile-bar-title {
    font-size: 13px;
    font-weight: 700;
    color: #475569;
    white-space: nowrap;
}

html[data-theme="dark"] .ssh-profile-bar-title {
    color: #cbd5e1;
}

.ssh-profile-list {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ssh-profile-chip {
    border: 1px solid rgba(148, 163, 184, 0.24);
    background: rgba(148, 163, 184, 0.08);
    color: var(--text-main);
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 13px;
    line-height: 1.2;
    cursor: pointer;
    transition: all 0.2s;
    min-width: 150px;
    max-width: 240px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

html:not([data-theme="dark"]) .ssh-profile-chip {
    background: #f8fafc;
    color: #334155;
}

.ssh-profile-chip:hover {
    border-color: rgba(99, 102, 241, 0.32);
    transform: translateY(-1px);
}

.ssh-profile-chip.active {
    background: var(--primary-light);
    border-color: var(--primary);
    color: var(--primary);
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.12);
}

.ssh-profile-chip.empty {
    opacity: 0.72;
}

.ssh-profile-clear {
    height: 36px;
    padding: 0 14px;
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    background: transparent;
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.ssh-profile-clear:hover {
    border-color: rgba(239, 68, 68, 0.28);
    color: #ef4444;
    background: rgba(239, 68, 68, 0.06);
}

html[data-theme="dark"] .ssh-profile-clear {
    color: #cbd5e1;
}

.ssh-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    /* 自动撑开宽度 */
    min-width: 140px;
    /* 防止太窄 */
}

/* 针对端口号输入框，让它窄一点，看起来更协调 */
.ssh-field:nth-child(2) {
    flex: 0.4;
    min-width: 80px;
}

.ssh-label {
    font-size: 13px;
    color: #4b5563;
    font-weight: 600;
    margin-left: 2px;
}

.ssh-input {
    width: 100%;
    height: 40px;
    /* 固定高度 */
    padding: 0 12px;
    border: 1px solid rgba(148, 163, 184, 0.20);
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.55);
    outline: none;
    font-size: 14px;
    font-family: 'Inter', monospace;
    /* 数字显示更好看 */
    transition: all 0.2s;
    color: var(--text-main);
}

html:not([data-theme="dark"]) .ssh-input {
    border-color: #d1d5db;
    background: #fff;
    color: #1f2937;
}

.ssh-input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light);
}

/* 按钮样式优化 */
.ssh-save,
.ssh-connect {
    height: 40px;
    /* 与输入框高度一致 */
    padding: 0 20px;
    border-radius: 8px;
    border: none;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 80px;
}

.ssh-save {
    background: #eff6ff;
    color: var(--primary);
    border: 1px solid transparent;
}

html[data-theme="dark"] .ssh-save {
    background: rgba(99, 102, 241, 0.15);
    color: rgba(0, 113, 227, 0.4);
}

.ssh-save:hover {
    background: #dbeafe;
    border-color: #bfdbfe;
}

html[data-theme="dark"] .ssh-save:hover {
    background: rgba(99, 102, 241, 0.25);
    border-color: rgba(99, 102, 241, 0.35);
}

.ssh-connect {
    background: #10b981;
    color: #fff;
    box-shadow: 0 2px 5px rgba(16, 185, 129, 0.2);
}

.ssh-connect:hover {
    background: #059669;
    transform: translateY(-1px);
}

.ssh-connect:active {
    transform: translateY(0);
}

.ssh-connect:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

/* 连接成功后的状态 */
.ssh-connect.connected {
    background: #ef4444;
    /* 变成红色断开按钮 */
    box-shadow: none;
}

.ssh-connect.connected:hover {
    background: #dc2626;
}

/* 移动端适配 */
@media (max-width: 768px) {
    .ssh-config {
        flex-direction: column;
        /* 手机上垂直排列 */
        align-items: stretch;
        gap: 12px;
    }

    .ssh-field,
    .ssh-field:nth-child(2) {
        width: 100%;
        flex: none;
    }

    .ssh-save,
    .ssh-connect {
        width: 100%;
        margin-top: 4px;
    }

    .ssh-profile-bar {
        align-items: stretch;
    }

    .ssh-profile-list {
        width: 100%;
    }

    .ssh-profile-chip {
        flex: 1 1 calc(50% - 10px);
        min-width: 0;
        max-width: none;
    }

    .ssh-profile-clear {
        width: 100%;
        height: 40px;
    }
}

@media (max-width: 480px) {
    .ssh-profile-chip {
        flex-basis: 100%;
    }
}

/* Pansou 三列自适应网格 */
.pansou-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10px;
}

@media (max-width: 768px) {
    .pansou-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 480px) {
    .pansou-grid {
        grid-template-columns: 1fr !important;
    }
}

/* 后缀名自适应网格 */
.ext-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(102px, 1fr)) !important;
    gap: 5px;
}

.ext-grid .value-list-card {
    flex-direction: row;
    align-items: center;
    gap: 6px;
    padding: 5px 6px;
}

.ext-grid .vl-input {
    padding: 4px 7px;
    font-size: 0.9rem;
}

.ext-grid .vl-delete-btn {
    width: 18px;
    height: 18px;
    font-size: 0.9rem;
    align-self: center;
}

@media (max-width: 768px) {
    .ext-grid {
        grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)) !important;
    }
}

@media (max-width: 480px) {
    .ext-grid {
        grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)) !important;
    }
}

/* 复选框网格布局 (Douban Hot) */
.checkbox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    margin-top: 8px;
}

.checkbox-card {
    background: rgba(148, 163, 184, 0.10);
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: var(--radius-m);
    padding: 10px 12px;
    transition: all 0.2s;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    user-select: none;
    font-size: 0.9rem;
    color: var(--text-main);
    font-weight: 500;
}

html:not([data-theme="dark"]) .checkbox-card {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}

.checkbox-card:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
}

html[data-theme="dark"] .checkbox-card:hover {
    background: rgba(148, 163, 184, 0.15);
    border-color: rgba(148, 163, 184, 0.25);
}

.checkbox-card.checked {
    background: var(--primary-light);
    border-color: var(--primary);
    color: var(--primary);
    font-weight: 600;
}

.checkbox-card input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--primary);
    cursor: pointer;
    flex-shrink: 0;
}

.ranking-subscription-picker {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ranking-subscription-group-hint {
    color: var(--text-secondary);
    font-size: 0.84rem;
    line-height: 1.55;
}

.ranking-subscription-group {
    padding-top: 2px;
}

.ranking-subscription-group + .ranking-subscription-group {
    border-top: 1px solid rgba(148, 163, 184, 0.18);
    padding-top: 14px;
}

.ranking-subscription-group-title {
    margin: 0;
    color: var(--text-main);
    font-size: 0.96rem;
    font-weight: 700;
}

.ranking-subscription-provider-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    margin-top: 10px;
}

.ranking-subscription-provider {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: var(--radius-m);
    background: rgba(148, 163, 184, 0.05);
}

.ranking-subscription-provider-title {
    margin-bottom: 2px;
    color: var(--text-main);
    font-size: 0.88rem;
    font-weight: 700;
}

.ranking-subscription-option-grid {
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 8px;
}

.ranking-subscription-card {
    min-height: 40px;
    padding: 8px 10px;
}

html:not([data-theme="dark"]) .ranking-subscription-provider {
    background: #fafafa;
    border-color: #e5e7eb;
}

/* ===============================
   Emby 仪表盘
   =============================== */
.emby-dashboard-wrap {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.emby-dashboard-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.emby-dashboard-title {
    margin: 0;
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--text-main);
}

.emby-dashboard-date {
    margin-top: 4px;
    font-size: 0.8rem;
    color: #9ca3af;
    font-weight: 700;
}

.emby-dashboard-tip {
    margin-top: 6px;
    font-size: 0.76rem;
    color: #94a3b8;
    line-height: 1.5;
}

.emby-dashboard-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.emby-config-btn {
    border: 1px solid rgba(59, 130, 246, 0.25);
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.12), rgba(37, 99, 235, 0.08));
    color: #2563eb;
    border-radius: 12px;
    padding: 9px 14px;
    font-size: 0.86rem;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.2s ease;
}

.emby-config-btn:hover {
    border-color: #3b82f6;
    color: #1d4ed8;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.18);
}

.emby-refresh-btn {
    border: 1px solid rgba(16, 185, 129, 0.28);
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.14), rgba(5, 150, 105, 0.08));
    color: #047857;
    border-radius: 12px;
    padding: 9px 14px;
    font-size: 0.86rem;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.2s ease;
}

.emby-refresh-btn:hover:not(:disabled) {
    border-color: #10b981;
    color: #065f46;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(16, 185, 129, 0.22);
}

.emby-refresh-btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.emby-setup-panel {
    border: 1px solid rgba(59, 130, 246, 0.18);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(59, 130, 246, 0.06), rgba(59, 130, 246, 0.02));
    padding: 18px;
}

.emby-setup-card {
    max-width: 760px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--bg-card);
    padding: 18px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.emby-setup-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.2px;
    background: rgba(59, 130, 246, 0.12);
    color: #2563eb;
}

.emby-setup-title {
    margin-top: 10px;
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
}

.emby-setup-desc {
    margin-top: 6px;
    color: #9ca3af;
    font-size: 0.83rem;
    line-height: 1.5;
}

.emby-setup-desc code {
    background: rgba(148, 163, 184, 0.16);
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 6px;
    padding: 1px 6px;
    color: var(--text-main);
    font-size: 0.78rem;
}

.emby-setup-form {
    margin-top: 14px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
}

.emby-setup-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: #64748b;
}

.emby-setup-input {
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    border-radius: 12px;
    padding: 11px 12px;
    font-size: 0.9rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.emby-setup-input:focus {
    outline: none;
    border-color: #60a5fa;
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.22);
}

.emby-setup-password-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.emby-setup-password-wrap .emby-setup-input {
    width: 100%;
    padding-right: 44px;
}

.emby-setup-toggle-key {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    font-size: 0.9rem;
    line-height: 1;
}

.emby-setup-toggle-key:hover {
    background: rgba(148, 163, 184, 0.18);
}

.emby-setup-actions {
    margin-top: 8px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.emby-setup-btn {
    border-radius: 12px;
    padding: 10px 14px;
    font-size: 0.86rem;
    font-weight: 800;
    cursor: pointer;
    border: 1px solid var(--border);
    transition: all 0.2s ease;
}

.emby-setup-btn.primary {
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    border-color: #2563eb;
    color: #fff;
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.28);
}

.emby-setup-btn.secondary {
    background: rgba(148, 163, 184, 0.08);
    color: #334155;
}

.emby-setup-btn.danger {
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.25);
    color: #dc2626;
}

.emby-setup-btn:hover:not(:disabled) {
    transform: translateY(-1px);
}

.emby-setup-btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.emby-setup-result {
    min-height: 24px;
    margin-top: 4px;
    font-size: 0.82rem;
    border-radius: 10px;
    padding: 7px 10px;
    border: 1px solid transparent;
}

.emby-setup-result.info {
    color: #64748b;
    background: rgba(148, 163, 184, 0.08);
    border-color: rgba(148, 163, 184, 0.22);
}

.emby-setup-result.success {
    color: #059669;
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(16, 185, 129, 0.22);
}

.emby-setup-result.error {
    color: #dc2626;
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.25);
}

.emby-setup-tip {
    margin-top: 2px;
    font-size: 0.75rem;
    color: #94a3b8;
}

.emby-user-select {
    min-width: 220px;
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    border-radius: 10px;
    padding: 8px 12px;
    font-size: 0.9rem;
    font-weight: 600;
}

.emby-live-btn {
    position: relative;
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    border-radius: 10px;
    width: 40px;
    height: 40px;
    cursor: pointer;
}

.emby-live-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}

.hidden {
    display: none !important;
}

.emby-live-dropdown {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--bg-card);
    overflow: hidden;
}

.emby-live-head {
    padding: 10px 12px;
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid var(--border);
    font-size: 0.85rem;
    font-weight: 700;
}

.emby-live-list {
    max-height: 320px;
    overflow: auto;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.emby-live-item {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 10px;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 10px;
    text-decoration: none;
    color: inherit;
}

.emby-live-item img {
    width: 48px;
    height: 68px;
    object-fit: cover;
    border-radius: 8px;
    background: #111827;
}

.emby-live-title {
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.emby-live-meta {
    margin-top: 2px;
    font-size: 0.75rem;
    color: #9ca3af;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.emby-live-progress {
    margin-top: 8px;
    height: 6px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.25);
    overflow: hidden;
}

.emby-live-progress span {
    display: block;
    height: 100%;
    background: #3b82f6;
}

.emby-metrics-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.emby-metric-card {
    border: 1px solid var(--border);
    background: var(--bg-card);
    border-radius: 12px;
    padding: 12px;
}

.emby-metric-label {
    font-size: 0.76rem;
    color: #9ca3af;
    font-weight: 700;
}

.emby-metric-value {
    margin-top: 6px;
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--text-main);
    line-height: 1;
}

.emby-panel {
    border: 1px solid var(--border);
    background: var(--bg-card);
    border-radius: 12px;
    padding: 12px;
}

.emby-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.emby-panel-title {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--text-main);
    margin-bottom: 10px;
}

.emby-library-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
}

.emby-library-card {
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    background: var(--bg-card);
}

.emby-library-card img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    background: #0f172a;
}

.emby-library-name {
    font-size: 0.85rem;
    font-weight: 700;
    padding: 8px;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.emby-two-cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.emby-poster-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
    gap: 10px;
}

.emby-poster-card {
    text-decoration: none;
    color: inherit;
}

.emby-poster-card img {
    width: 100%;
    aspect-ratio: 2/3;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: #0f172a;
}

.emby-poster-title {
    margin-top: 6px;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.emby-poster-meta {
    margin-top: 2px;
    font-size: 0.72rem;
    color: #9ca3af;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.emby-trend-actions {
    display: inline-flex;
    gap: 6px;
}

.emby-trend-btn {
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    border-radius: 8px;
    padding: 4px 8px;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
}

.emby-trend-btn.active {
    background: #3b82f6;
    border-color: #3b82f6;
    color: #fff;
}

.emby-chart-box {
    height: 260px;
}

.emby-top-users {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 320px;
    overflow: auto;
}

.emby-user-row {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 10px;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 8px;
}

.emby-user-rank {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: rgba(99, 102, 241, 0.15);
    color: var(--primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 800;
}

.emby-user-name {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--text-main);
}

.emby-user-meta {
    font-size: 0.72rem;
    color: #9ca3af;
}

.emby-user-time {
    font-size: 0.84rem;
    font-weight: 800;
    color: var(--text-main);
}

.emby-loading,
.emby-empty,
.emby-error {
    text-align: center;
    padding: 16px 8px;
    font-size: 0.85rem;
    color: #9ca3af;
}

.emby-error {
    color: #ef4444;
}

/* ===============================
   Emby 反代配置页
   =============================== */
.emby-proxy-wrap {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.emby-proxy-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.emby-proxy-title {
    margin: 0;
    font-size: 1.28rem;
    font-weight: 800;
    color: var(--text-main);
}

.emby-proxy-tip {
    margin-top: 6px;
    font-size: 0.8rem;
    color: #94a3b8;
    line-height: 1.6;
}

.emby-proxy-tip code {
    background: rgba(148, 163, 184, 0.16);
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 6px;
    padding: 1px 6px;
    color: var(--text-main);
    font-size: 0.76rem;
}

.emby-proxy-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.emby-proxy-btn {
    border-radius: 12px;
    padding: 9px 14px;
    font-size: 0.86rem;
    font-weight: 800;
    cursor: pointer;
    border: 1px solid var(--border);
    transition: all 0.2s ease;
}

.emby-proxy-btn.primary {
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    border-color: #2563eb;
    color: #fff;
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.25);
}

.emby-proxy-btn.secondary {
    background: rgba(148, 163, 184, 0.08);
    color: #334155;
}

.emby-proxy-btn.danger {
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.25);
    color: #dc2626;
}

.emby-proxy-btn:hover:not(:disabled) {
    transform: translateY(-1px);
}

.emby-proxy-btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.emby-proxy-result {
    border-radius: 10px;
    padding: 9px 12px;
    font-size: 0.82rem;
    border: 1px solid transparent;
}

.emby-proxy-result.info {
    color: #64748b;
    background: rgba(148, 163, 184, 0.08);
    border-color: rgba(148, 163, 184, 0.22);
}

.emby-proxy-result.success {
    color: #059669;
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(16, 185, 129, 0.22);
}

.emby-proxy-result.error {
    color: #dc2626;
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.25);
}

.emby-proxy-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.emby-proxy-card {
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 12px;
    background: var(--bg-card);
    box-shadow: 0 4px 14px rgba(2, 6, 23, 0.04);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.emby-proxy-card-head {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
}

.emby-proxy-name-input {
    min-width: 0;
    max-width: none;
}

.emby-proxy-card-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: stretch;
}

.emby-proxy-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.emby-proxy-field>span {
    font-size: 0.74rem;
    color: #64748b;
    font-weight: 700;
}

.emby-proxy-input {
    width: 100%;
    border: 1px solid var(--border);
    background: var(--bg-card);
    color: var(--text-main);
    border-radius: 10px;
    padding: 8px 10px;
    font-size: 0.84rem;
}

.emby-proxy-input:focus {
    outline: none;
    border-color: #60a5fa;
    box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.2);
}

.emby-proxy-api-wrap {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px;
}

.emby-proxy-mini-btn {
    border: 1px solid var(--border);
    background: rgba(148, 163, 184, 0.08);
    color: var(--text-main);
    border-radius: 8px;
    padding: 6px 8px;
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
}

.emby-proxy-mini-btn:hover {
    border-color: #94a3b8;
}

.emby-proxy-mini-btn.danger {
    color: #dc2626;
    border-color: rgba(239, 68, 68, 0.28);
    background: rgba(239, 68, 68, 0.1);
}

.emby-proxy-mini-btn.success {
    color: #065f46;
    border-color: rgba(16, 185, 129, 0.28);
    background: rgba(16, 185, 129, 0.1);
}

.emby-proxy-mini-btn.primary {
    color: #1d4ed8;
    border-color: rgba(59, 130, 246, 0.32);
    background: rgba(59, 130, 246, 0.1);
}

.emby-proxy-center {
    text-align: center;
}

.emby-proxy-status {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
}

.emby-proxy-status.running {
    color: #065f46;
    background: rgba(16, 185, 129, 0.16);
}

.emby-proxy-status.stopped {
    color: #92400e;
    background: rgba(251, 191, 36, 0.2);
}

.emby-proxy-status.disabled {
    color: #475569;
    background: rgba(148, 163, 184, 0.18);
}

.emby-proxy-status-error {
    margin-top: 4px;
    font-size: 0.72rem;
    color: #dc2626;
    max-width: 100%;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.emby-proxy-row-actions {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.emby-proxy-hidden-flag {
    display: none;
}

.emby-proxy-empty {
    text-align: center;
    color: #94a3b8;
    font-size: 0.84rem;
    padding: 22px 8px;
    border: 1px dashed rgba(148, 163, 184, 0.35);
    border-radius: 12px;
}

.emby-proxy-field[hidden] {
    display: none !important;
}

.emby-proxy-card[data-proxy-type="feiniu_music"] {
    grid-column: 1 / -1;
}

.emby-music-mapping-section {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid rgba(59, 130, 246, 0.22);
    border-radius: 14px;
    background: rgba(59, 130, 246, 0.045);
}

.emby-music-mapping-section[hidden] {
    display: none !important;
}

.emby-music-mapping-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.emby-music-mapping-head > div {
    display: grid;
    gap: 3px;
}

.emby-music-mapping-head strong {
    color: var(--text-main);
    font-size: 0.92rem;
}

.emby-music-mapping-head span {
    color: #64748b;
    font-size: 0.76rem;
}

.emby-music-mapping-help {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 9px 10px;
    border-radius: 10px;
    background: rgba(14, 165, 233, 0.08);
    color: #475569;
    font-size: 0.76rem;
    line-height: 1.55;
}

.emby-music-mapping-help strong {
    color: #0369a1;
}

.emby-music-mapping-help code {
    padding: 1px 5px;
    border-radius: 5px;
    background: rgba(15, 23, 42, 0.08);
    color: var(--text-main);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    word-break: break-all;
}

.emby-music-mapping-help small {
    flex-basis: 100%;
    color: #64748b;
    font-size: 0.72rem;
}

.emby-music-mapping-list {
    display: grid;
    gap: 8px;
}

.emby-music-mapping-row {
    display: grid;
    grid-template-columns: minmax(120px, 0.55fr) minmax(220px, 1fr) auto minmax(220px, 1fr) auto;
    align-items: end;
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 11px;
    background: var(--bg-card);
}

.emby-music-map-arrow {
    align-self: end;
    padding: 9px 1px;
    color: #3b82f6;
    font-weight: 900;
}

.emby-music-map-remove {
    align-self: end;
    min-height: 36px;
}

html[data-theme="dark"] .emby-music-mapping-section {
    border-color: rgba(96, 165, 250, 0.28);
    background: rgba(30, 64, 175, 0.1);
}

html[data-theme="dark"] .emby-music-mapping-head span,
html[data-theme="dark"] .emby-music-mapping-help,
html[data-theme="dark"] .emby-music-mapping-help small {
    color: #a8b7cb;
}

html[data-theme="dark"] .emby-music-mapping-help strong {
    color: #7dd3fc;
}

@media (max-width: 900px) {
    .emby-music-mapping-head {
        align-items: stretch;
        flex-direction: column;
    }

    .emby-music-mapping-row {
        grid-template-columns: 1fr;
    }

    .emby-music-map-arrow {
        display: none;
    }
}

.hdhive-proxy-cards {
    grid-template-columns: minmax(0, 1fr);
}

.hdhive-proxy-card-title {
    display: flex;
    flex-direction: column;
    gap: 3px;
    color: var(--text-main);
}

.hdhive-proxy-card-title strong {
    font-size: 1.02rem;
}

.hdhive-proxy-card-title span {
    color: #64748b;
    font-size: 0.76rem;
}

.hdhive-proxy-readonly {
    cursor: default;
    opacity: 0.82;
}

.hdhive-proxy-access-url {
    display: flex;
    align-items: center;
    min-height: 36px;
    width: 100%;
    border: 1px solid rgba(59, 130, 246, 0.24);
    border-radius: 10px;
    padding: 7px 10px;
    background: rgba(59, 130, 246, 0.08);
    color: #2563eb;
    font-size: 0.8rem;
    text-decoration: none;
    word-break: break-all;
}

.hdhive-proxy-access-url.disabled {
    pointer-events: none;
    color: #94a3b8;
    border-color: rgba(148, 163, 184, 0.25);
    background: rgba(148, 163, 184, 0.08);
}

.hdhive-proxy-runtime-error {
    max-width: none;
    white-space: normal;
}

#re0-proxy-embedded-section .emby-proxy-wrap {
    width: 100%;
    max-width: none;
    margin: 0;
    gap: 16px;
}

.hdhive-config-panel {
    border: 1px solid rgba(99, 102, 241, 0.16);
    border-radius: 16px;
    padding: 16px;
    background: var(--bg-card);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.045);
}

.hdhive-account-merged-panel,
.hdhive-proxy-service-panel {
    display: grid;
    gap: 12px;
}

.hdhive-account-merged-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.hdhive-account-merged-head > div {
    display: grid;
    gap: 4px;
}

.hdhive-account-merged-head strong,
.hdhive-proxy-section-label strong {
    color: var(--text-main);
    font-size: 0.96rem;
    font-weight: 800;
}

.hdhive-account-merged-head span,
.hdhive-proxy-section-label span {
    color: #526176;
    font-size: 0.76rem;
    line-height: 1.55;
}

.hdhive-account-config-host,
.hdhive-account-config-embedded {
    min-width: 0;
}

.hdhive-account-config-embedded {
    display: block;
    padding: 0;
    margin: 0;
    background: transparent;
}

.hdhive-account-config-embedded > .config-subgroup-stack {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: 10px;
}

.hdhive-account-config-embedded .config-subgroup {
    min-width: 0;
    border-radius: 12px;
    padding: 12px;
    border-color: rgba(99, 102, 241, 0.14);
    background: rgba(248, 250, 252, 0.82);
    box-shadow: none;
}

.hdhive-account-config-embedded .config-subgroup:not(.is-collapsed) {
    grid-column: 1 / -1;
}

.hdhive-account-config-embedded .config-subgroup::before {
    display: none;
}

.hdhive-account-config-embedded .config-subgroup-head {
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding-bottom: 12px;
}

.hdhive-account-config-embedded .config-subgroup-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    font-size: 1rem;
}

.hdhive-account-config-embedded .config-subgroup-title-wrap {
    gap: 2px;
}

.hdhive-account-config-embedded .config-subgroup-title {
    font-size: 0.88rem;
}

.hdhive-account-config-embedded .config-subgroup-desc {
    font-size: 0.73rem;
    line-height: 1.45;
}

.hdhive-account-config-embedded .config-subgroup-toggle {
    gap: 4px;
    padding: 5px 9px;
    font-size: 0.72rem;
}

.hdhive-account-config-embedded .config-subgroup-body {
    gap: 10px;
}

.hdhive-account-config-embedded.config-group-structured .form-item {
    padding: 14px;
    border-radius: 12px;
}

.hdhive-account-config-loading {
    border-radius: 10px;
    padding: 12px;
    color: #64748b;
    background: rgba(148, 163, 184, 0.09);
    font-size: 0.78rem;
}

.hdhive-proxy-section-label {
    display: grid;
    gap: 4px;
    margin: 0;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.hdhive-proxy-service-panel .emby-proxy-result {
    margin: 0;
}

.hdhive-proxy-card {
    padding: 14px;
    border-color: rgba(99, 102, 241, 0.14);
    background: rgba(248, 250, 252, 0.82);
    box-shadow: none;
}

.hdhive-proxy-card > .emby-proxy-card-head {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.hdhive-proxy-card > .emby-proxy-card-grid {
    grid-template-columns: minmax(260px, 2fr) minmax(150px, 0.65fr) minmax(120px, 0.45fr);
}

.hdhive-proxy-card > .emby-proxy-card-grid .emby-proxy-field:last-child {
    grid-column: 1 / -1;
}

.hdhive-proxy-helper-panel {
    display: grid;
    gap: 8px;
    border: 1px solid rgba(99, 102, 241, 0.22);
    border-radius: 12px;
    padding: 12px;
    background: rgba(99, 102, 241, 0.06);
}

.hdhive-proxy-helper-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.hdhive-proxy-helper-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-main);
    font-size: 0.86rem;
    font-weight: 650;
    cursor: pointer;
}

.hdhive-proxy-helper-toggle input {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: var(--primary);
}

.hdhive-proxy-helper-status {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 4px 9px;
    font-size: 0.72rem;
    font-weight: 650;
}

.hdhive-proxy-helper-status.ready {
    color: #047857;
    background: rgba(16, 185, 129, 0.13);
}

.hdhive-proxy-helper-status.warning,
.hdhive-proxy-helper-status.pending {
    color: #b45309;
    background: rgba(245, 158, 11, 0.13);
}

.hdhive-proxy-helper-status.disabled {
    color: #64748b;
    background: rgba(148, 163, 184, 0.14);
}

.hdhive-proxy-helper-description,
.hdhive-proxy-helper-meta {
    color: #526176;
    font-size: 0.76rem;
    line-height: 1.55;
}

.hdhive-proxy-helper-meta {
    color: var(--primary);
    word-break: break-word;
}

.hdhive-proxy-helper-config-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 2px;
}

.hdhive-proxy-helper-config-grid .emby-proxy-field,
.hdhive-proxy-helper-config-grid .emby-proxy-input {
    min-width: 0;
}

.hdhive-proxy-transfer-panel {
    display: grid;
    gap: 12px;
    border: 1px solid rgba(14, 165, 233, 0.24);
    border-radius: 12px;
    padding: 12px;
    background: rgba(14, 165, 233, 0.055);
}

.hdhive-proxy-transfer-head > div {
    display: grid;
    gap: 4px;
}

.hdhive-proxy-transfer-head strong {
    color: var(--text-main);
    font-size: 0.88rem;
}

.hdhive-proxy-transfer-head span {
    color: #526176;
    font-size: 0.76rem;
    line-height: 1.55;
}

.hdhive-proxy-transfer-targets {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.hdhive-proxy-transfer-target {
    display: grid;
    align-content: start;
    gap: 7px;
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 10px;
    padding: 10px;
    background: rgba(255, 255, 255, 0.56);
}

.hdhive-proxy-transfer-target-name {
    color: var(--text-main);
    font-size: 0.79rem;
    font-weight: 650;
}

.hdhive-proxy-transfer-target-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 6px;
}

.hdhive-proxy-transfer-target-control .emby-proxy-input {
    min-width: 0;
    cursor: default;
}

.hdhive-proxy-transfer-target-control .emby-proxy-mini-btn {
    padding-inline: 9px;
    white-space: nowrap;
}

.hdhive-proxy-transfer-target-meta {
    min-height: 1.45em;
    color: #94a3b8;
    font-size: 0.7rem;
    line-height: 1.45;
    word-break: break-all;
}

.hdhive-proxy-transfer-target-meta.configured {
    color: #047857;
}

.hdhive-proxy-transfer-warning {
    border-radius: 9px;
    padding: 8px 10px;
    color: #92400e;
    background: rgba(245, 158, 11, 0.1);
    font-size: 0.72rem;
    line-height: 1.55;
}

.hdhive-proxy-security-note {
    border-radius: 10px;
    padding: 9px 11px;
    color: #92400e;
    background: rgba(245, 158, 11, 0.1);
    border: 1px solid rgba(245, 158, 11, 0.22);
    font-size: 0.76rem;
    line-height: 1.55;
}

html[data-theme="dark"] .hdhive-proxy-card-title span {
    color: #9db0c7;
}

html[data-theme="dark"] .hdhive-proxy-access-url {
    color: #93c5fd;
}

html[data-theme="dark"] .hdhive-config-panel {
    border-color: rgba(129, 140, 248, 0.22);
    background: rgba(15, 23, 42, 0.52);
    box-shadow: 0 10px 28px rgba(2, 6, 23, 0.24);
}

html[data-theme="dark"] .hdhive-account-config-embedded .config-subgroup,
html[data-theme="dark"] .hdhive-proxy-card {
    border-color: rgba(129, 140, 248, 0.18);
    background: rgba(30, 41, 59, 0.58);
}

html[data-theme="dark"] .hdhive-account-merged-head span,
html[data-theme="dark"] .hdhive-proxy-section-label span {
    color: #a9b8cc;
}

html[data-theme="dark"] .hdhive-proxy-helper-panel {
    border-color: rgba(129, 140, 248, 0.28);
    background: rgba(99, 102, 241, 0.1);
}

html[data-theme="dark"] .hdhive-proxy-helper-description {
    color: #a9b8cc;
}

html[data-theme="dark"] .hdhive-proxy-helper-meta {
    color: rgba(0, 113, 227, 0.4);
}

html[data-theme="dark"] .hdhive-proxy-transfer-panel {
    border-color: rgba(56, 189, 248, 0.25);
    background: rgba(14, 165, 233, 0.09);
}

html[data-theme="dark"] .hdhive-proxy-transfer-head span {
    color: #a9b8cc;
}

html[data-theme="dark"] .hdhive-proxy-transfer-target {
    border-color: rgba(148, 163, 184, 0.2);
    background: rgba(15, 23, 42, 0.38);
}

html[data-theme="dark"] .hdhive-proxy-transfer-target-meta.configured {
    color: #6ee7b7;
}

html[data-theme="dark"] .hdhive-proxy-security-note {
    color: #fcd34d;
}

@media (max-width: 900px) {
    .hdhive-account-config-embedded > .config-subgroup-stack {
        grid-template-columns: 1fr;
    }

    .hdhive-proxy-card > .emby-proxy-card-head {
        align-items: stretch;
        flex-direction: column;
    }

    .hdhive-proxy-card > .emby-proxy-card-head .emby-proxy-row-actions {
        justify-content: flex-start;
    }

    .hdhive-proxy-card > .emby-proxy-card-grid {
        grid-template-columns: 1fr;
    }

    .hdhive-proxy-card > .emby-proxy-card-grid .emby-proxy-field:last-child {
        grid-column: auto;
    }
}

@media (max-width: 640px) {
    .hdhive-config-panel {
        padding: 12px;
        border-radius: 14px;
    }

    .hdhive-account-merged-head {
        align-items: stretch;
        flex-direction: column;
    }

    .hdhive-account-merged-head .emby-proxy-mini-btn {
        width: 100%;
    }

    .hdhive-proxy-helper-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .hdhive-proxy-transfer-targets {
        grid-template-columns: 1fr;
    }

    .hdhive-proxy-helper-config-grid {
        grid-template-columns: 1fr;
    }

    .hdhive-proxy-transfer-target-control {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .hdhive-proxy-transfer-target-control .emby-proxy-mini-btn.danger {
        grid-column: 2;
    }
}

@media (min-width: 641px) and (max-width: 1100px) {
    .hdhive-proxy-helper-config-grid {
        grid-template-columns: 1fr;
    }

    .hdhive-proxy-transfer-targets {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1200px) {
    .emby-proxy-cards {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    .emby-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .emby-two-cols {
        grid-template-columns: 1fr;
    }

    .emby-proxy-cards {
        grid-template-columns: 1fr;
    }

    .emby-proxy-card-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .emby-user-select {
        min-width: 150px;
    }

    /* 手机视图：我的媒体库一行 2 列 */
    #emby-library-container.emby-library-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    /* 手机视图：最近入库一行 3 列 */
    #emby-latest-container.emby-poster-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    /* 手机视图：继续播放一行 3 列 */
    #emby-recent-container.emby-poster-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .emby-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .emby-metric-value {
        font-size: 1.3rem;
    }
}

/* 顶栏与底栏 SVG 图标对齐 */
.search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-sub);
    pointer-events: none;
    display: block;
    transition: color 0.2s;
}

.search-wrapper:focus-within .search-icon {
    color: var(--primary);
}

.btn-svg-icon {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.footer-btn-icon {
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
    margin-right: 2px;
}

.menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: transparent;
    border: none;
    color: var(--text-main);
    padding: 6px;
    border-radius: 8px;
    transition: background 0.2s;
}

.menu-toggle {
    display: none !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: transparent;
    border: none;
    color: var(--text-main);
    padding: 6px;
    border-radius: 8px;
    transition: background 0.2s;
}

@media (max-width: 768px) {
    .menu-toggle {
        display: inline-flex !important;
    }
}

.menu-toggle:hover {
    background: rgba(0, 0, 0, 0.05);
}

html[data-theme="dark"] .menu-toggle:hover {
    background: rgba(255, 255, 255, 0.08);
}

/* ==========================================================================
   清爽简约高级 B 端组件规范 (Clean & Refined Design System)
   - 专注边距一致性、精致 SVG 图标底座、通透毛玻璃、优雅提示条与统一对齐
   ========================================================================== */

/* 1. 布局骨架 - 宽屏自适应铺满规范 */
.app-container {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    display: flex !important;
    overflow: hidden !important;
    background: transparent !important;
}

.main-content {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    background: transparent !important;
}

.content-area {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 24px 32px 48px !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
    background: transparent !important;
    margin: 0 !important;
}

#env-form,
#env-sections {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* ==========================================================================
   页面双轨布局规范体系 (Dual Layout System)
   1. 【全宽自适应铺满】：系统工具组全所属页、影视发现组全所属页
   2. 【居中舒适排布】：其他组（115网盘、123云盘、天翼、光鸭等各项网盘配置页）
   ========================================================================== */

/* 1. 【全宽平铺型页面】强制 100% 流式自适应铺满 */
#emby-dashboard-section,
.emby-dashboard-wrap,
#emby-proxy-section,
#proxy-settings-section,
#log-viewer-section,
#transfer-history-section,
#organize-history-section,
#utility-tools-section,
#ssh-section,
#media-library-section,
#media-rankings-section,
#media-calendar-section,
#media-tasks-section,
#media-work-detail-section,
.media-discovery-page {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* 2. 【居中优雅配置型页面】：仅其他组（网盘配置页等）限制舒适最大宽度并水平居中 */
.config-group:not(#emby-dashboard-section):not(#emby-proxy-section):not(#proxy-settings-section):not(#log-viewer-section):not(#transfer-history-section):not(#organize-history-section):not(#utility-tools-section):not(#ssh-section):not(#media-library-section):not(#media-rankings-section):not(#media-calendar-section):not(#media-tasks-section):not(#media-work-detail-section) {
    width: 100% !important;
    max-width: 960px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* 居中配置页内部卡片饱满居中 */
.config-group:not(#emby-dashboard-section):not(#emby-proxy-section):not(#proxy-settings-section):not(#log-viewer-section):not(#transfer-history-section):not(#organize-history-section):not(#utility-tools-section):not(#ssh-section):not(#media-library-section):not(#media-rankings-section):not(#media-calendar-section):not(#media-tasks-section) .config-subgroup {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* 6个核心指标卡片：宽屏下6列自适应排满一整行，杜绝第2行两列残缺留白 */
.emby-metrics-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 14px !important;
    width: 100% !important;
}
@media (max-width: 1300px) {
    .emby-metrics-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 768px) {
    .emby-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 480px) {
    .emby-metrics-grid {
        grid-template-columns: 1fr !important;
    }
}

/* 两列大板块（媒体库 + 最近入库，趋势追踪等）在宽屏下自适应扩展 */
.emby-two-cols {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100% !important;
}
@media (max-width: 1024px) {
    .emby-two-cols {
        grid-template-columns: 1fr !important;
    }
}

/* 媒体库卡片网格响应式流式铺满 */
.emby-library-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)) !important;
    gap: 14px !important;
    width: 100% !important;
}
.emby-library-card {
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.emby-library-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px -4px rgba(0, 0, 0, 0.12) !important;
}

/* 海报卡片网格响应式流式铺满（海报更精致小巧） */
.emby-poster-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
}
.emby-poster-card {
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.emby-poster-card:hover {
    transform: translateY(-2px) !important;
}

/* 实用工具自适应网格系统 */
#utility-tools-section .utility-tools-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100% !important;
}
@media (max-width: 1280px) {
    #utility-tools-section .utility-tools-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 960px) {
    #utility-tools-section .utility-tools-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 600px) {
    #utility-tools-section .utility-tools-grid {
        grid-template-columns: 1fr !important;
    }
}

/* 日志查看器全屏自适应铺满 */
.content-area.log-viewer-active {
    padding: 16px 24px !important;
    width: 100% !important;
    max-width: 100% !important;
}

#log-viewer-section.config-group.active {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
}

/* 表单控件在大屏下的黄金比例与舒适输入宽度 */
.config-group .config-item {
    width: 100% !important;
    max-width: 100% !important;
}
.config-group .config-item input[type="text"]:not(.search-input),
.config-group .config-item input[type="password"],
.config-group .config-item input[type="number"],
.config-group .config-item select:not(#emby-user-select),
.config-group .config-item textarea {
    max-width: 760px;
}

/* 2. 侧边栏 (Sidebar) 边距、字号与层级精修 */
.sidebar {
    width: 256px !important;
    background: rgba(248, 250, 252, 0.82) !important;
    backdrop-filter: blur(20px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
    border-right: 1px solid rgba(226, 232, 240, 0.8) !important;
    box-shadow: 1px 0 16px 0 rgba(15, 23, 42, 0.03) !important;
    display: flex !important;
    flex-direction: column !important;
}
html[data-theme="dark"] .sidebar {
    background: rgba(15, 23, 42, 0.78) !important;
    backdrop-filter: blur(24px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.07) !important;
    box-shadow: 1px 0 24px 0 rgba(0, 0, 0, 0.25) !important;
}

.brand {
    padding: 20px 18px 16px !important;
    display: flex !important;
    align-items: center !important;
    gap: 11px !important;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12) !important;
}
html[data-theme="dark"] .brand {
    border-bottom-color: rgba(255, 255, 255, 0.05) !important;
}

.brand-icon {
    width: 32px !important;
    height: 32px !important;
    border-radius: 9px !important;
    flex-shrink: 0 !important;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 2px 8px rgba(45, 167, 234, 0.25) !important;
    transition: transform 0.2s ease !important;
}
.brand-icon:hover {
    transform: scale(1.04) !important;
}

.brand-info,
.brand > div:not(.brand-icon) {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 3px !important;
    min-width: 0 !important;
}

.brand-text {
    font-size: 1.06rem !important;
    font-weight: 750 !important;
    letter-spacing: -0.03em !important;
    line-height: 1.15 !important;
    color: #0f172a !important;
    text-rendering: geometricPrecision !important;
    white-space: nowrap !important;
}
html[data-theme="dark"] .brand-text {
    color: #f8fafc !important;
}

.brand-version {
    display: inline-block !important;
    padding: 0 !important;
    margin: 0 0 0 6px !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 0.72rem !important;
    font-weight: 500 !important;
    font-family: inherit !important;
    line-height: 1.2 !important;
    letter-spacing: 0.02em !important;
    color: #64748b !important;
    white-space: nowrap !important;
    user-select: none !important;
    transition: color 0.15s ease !important;
}
html[data-theme="dark"] .brand-version {
    background: transparent !important;
    border: none !important;
    color: #94a3b8 !important;
}
.brand-version:hover {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: #334155 !important;
}
html[data-theme="dark"] .brand-version:hover {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: #e2e8f0 !important;
}

#sidebar-nav {
    padding: 10px 10px 16px !important;
    flex: 1 1 0% !important;
    overflow-y: auto !important;
}

/* 侧栏分类标题与折叠容器 */
.nav-category-group {
    position: relative !important;
    margin-top: 14px !important;
    padding-top: 10px !important;
}
.nav-category-group:first-child {
    margin-top: 2px !important;
    padding-top: 0 !important;
}

/* 组间极细分界微线，两端渐隐 */
.nav-category-group:not(:first-child)::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 8px !important;
    right: 8px !important;
    height: 1px !important;
    background: linear-gradient(90deg, transparent, rgba(148, 163, 184, 0.2) 20%, rgba(148, 163, 184, 0.2) 80%, transparent) !important;
}
html[data-theme="dark"] .nav-category-group:not(:first-child)::before {
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.07) 20%, rgba(255, 255, 255, 0.07) 80%, transparent) !important;
}

.nav-category-btn {
    width: 100% !important;
    padding: 5px 6px 5px 8px !important;
    margin-bottom: 3px !important;
    border-radius: 6px !important;
    background: transparent !important;
    border: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    cursor: pointer !important;
    user-select: none !important;
    transition: all 0.16s ease !important;
}
.nav-category-btn:hover {
    background: rgba(15, 23, 42, 0.035) !important;
}
html[data-theme="dark"] .nav-category-btn:hover {
    background: rgba(255, 255, 255, 0.045) !important;
}

.nav-category-title {
    font-size: 0.77rem !important;
    letter-spacing: 0.04em !important;
    font-weight: 700 !important;
    color: #64748b !important;
    line-height: 1.25 !important;
    transition: color 0.15s ease !important;
}
.nav-category-btn:hover .nav-category-title {
    color: #0f172a !important;
}
html[data-theme="dark"] .nav-category-title {
    color: #94a3b8 !important;
}
html[data-theme="dark"] .nav-category-btn:hover .nav-category-title {
    color: #f1f5f9 !important;
}

.nav-category-arrow {
    width: 18px !important;
    height: 18px !important;
    border-radius: 4px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #94a3b8 !important;
    opacity: 0.65 !important;
    flex-shrink: 0 !important;
    transition: all 0.18s ease !important;
}
.nav-category-arrow::before {
    display: none !important;
    content: none !important;
}
.nav-category-btn:hover .nav-category-arrow {
    opacity: 1 !important;
    color: #0284c7 !important;
    background: rgba(2, 132, 199, 0.08) !important;
}
html[data-theme="dark"] .nav-category-btn:hover .nav-category-arrow {
    color: #38bdf8 !important;
    background: rgba(56, 189, 248, 0.1) !important;
}

.nav-category-arrow .nav-category-chevron {
    width: 11px !important;
    height: 11px !important;
    stroke-width: 2.2 !important;
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important;
    transform-origin: center center !important;
    transform: rotate(0deg) !important;
}
.nav-category-group.collapsed .nav-category-arrow .nav-category-chevron {
    transform: rotate(-90deg) !important;
}
.nav-category-group.collapsed.search-expanded .nav-category-arrow .nav-category-chevron {
    transform: rotate(0deg) !important;
}

.nav-category-body {
    margin-top: 2px !important;
    padding-left: 2px !important;
    border-left: none !important;
    margin-left: 0 !important;
}
.nav-category-group.collapsed .nav-category-body {
    display: none !important;
}
.nav-category-group.collapsed.search-expanded .nav-category-body {
    display: block !important;
}

/* 侧栏具体页面项 - Apple / Linear 风格微晶悬浮底座与药丸指示器 */
.nav-item {
    position: relative !important;
    display: flex;
    align-items: center !important;
    gap: 9px !important;
    padding: 7px 10px 7px 11px !important;
    margin-bottom: 2.5px !important;
    border-radius: 8px !important;
    font-size: 0.835rem !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    color: #475569 !important;
    border: 1px solid transparent !important;
    transition: all 0.16s cubic-bezier(0.16, 1, 0.3, 1) !important;
    cursor: pointer !important;
}
html[data-theme="dark"] .nav-item {
    color: rgba(226, 232, 240, 0.78) !important;
}

.nav-item:hover {
    background: rgba(15, 23, 42, 0.04) !important;
    color: #0f172a !important;
    transform: translateX(1px) !important;
}
html[data-theme="dark"] .nav-item:hover {
    background: rgba(255, 255, 255, 0.055) !important;
    color: #ffffff !important;
}

/* 激活态：双层微光胶囊底座 */
.nav-item.active {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.08) 0%, rgba(59, 130, 246, 0.03) 100%) !important;
    border-color: rgba(37, 99, 235, 0.16) !important;
    color: #1d4ed8 !important;
    font-weight: 600 !important;
    box-shadow: 0 1px 3px rgba(37, 99, 235, 0.06) !important;
}
html[data-theme="dark"] .nav-item.active {
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.16) 0%, rgba(37, 99, 235, 0.08) 100%) !important;
    border-color: rgba(59, 130, 246, 0.28) !important;
    color: #93c5fd !important;
    font-weight: 600 !important;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.2) !important;
}

/* 激活态左侧圆润药丸胶囊微光指示条 */
.nav-item.active::before {
    content: '' !important;
    position: absolute !important;
    left: 3px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 3px !important;
    height: 14px !important;
    border-radius: 9999px !important;
    background: linear-gradient(to bottom, #3b82f6, #1d4ed8) !important;
    box-shadow: 0 0 8px rgba(37, 99, 235, 0.5) !important;
}
html[data-theme="dark"] .nav-item.active::before {
    background: linear-gradient(to bottom, #60a5fa, #3b82f6) !important;
    box-shadow: 0 0 10px rgba(59, 130, 246, 0.65) !important;
}

.nav-item .nav-icon-svg,
.nav-item svg {
    width: 17px !important;
    height: 17px !important;
    stroke-width: 1.8 !important;
    color: #64748b !important;
    flex-shrink: 0 !important;
    transition: transform 0.18s ease, color 0.16s ease !important;
}
html[data-theme="dark"] .nav-item .nav-icon-svg,
html[data-theme="dark"] .nav-item svg {
    color: #94a3b8 !important;
}
.nav-item:hover .nav-icon-svg,
.nav-item:hover svg {
    color: #0f172a !important;
    transform: scale(1.05) !important;
}
html[data-theme="dark"] .nav-item:hover .nav-icon-svg,
html[data-theme="dark"] .nav-item:hover svg {
    color: #ffffff !important;
}
.nav-item.active .nav-icon-svg,
.nav-item.active svg {
    color: #2563eb !important;
    transform: scale(1.02) !important;
}
html[data-theme="dark"] .nav-item.active .nav-icon-svg,
html[data-theme="dark"] .nav-item.active svg {
    color: #60a5fa !important;
}

.nav-text {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    letter-spacing: -0.01em !important;
}

.nav-category-btn:focus,
.nav-category-btn:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* 侧栏底部双列紧凑快捷栏规范 */
.sidebar-footer {
    padding: 12px 12px !important;
    gap: 8px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    border-top: 1px solid rgba(148, 163, 184, 0.14) !important;
    background: transparent !important;
}
html[data-theme="dark"] .sidebar-footer {
    border-top-color: rgba(255, 255, 255, 0.06) !important;
}

.sidebar-footer .theme-toggle-btn,
.sidebar-footer .logout-btn {
    width: 100% !important;
    height: 34px !important;
    padding: 0 10px !important;
    border-radius: 9px !important;
    font-size: 0.8rem !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    border: 1px solid rgba(148, 163, 184, 0.16) !important;
    background: rgba(148, 163, 184, 0.07) !important;
    color: #64748b !important;
    backdrop-filter: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    cursor: pointer !important;
    transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: none !important;
}

.sidebar-footer .theme-toggle-btn:hover,
.sidebar-footer .logout-btn:hover,
.sidebar-footer .theme-toggle-btn:active,
.sidebar-footer .logout-btn:active {
    background: rgba(148, 163, 184, 0.16) !important;
    border-color: rgba(148, 163, 184, 0.28) !important;
    color: #1e293b !important;
    box-shadow: none !important;
}

html[data-theme="dark"] .sidebar-footer .theme-toggle-btn,
html[data-theme="dark"] .sidebar-footer .logout-btn {
    background: rgba(255, 255, 255, 0.04) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    color: #94a3b8 !important;
}

html[data-theme="dark"] .sidebar-footer .theme-toggle-btn:hover,
html[data-theme="dark"] .sidebar-footer .logout-btn:hover,
html[data-theme="dark"] .sidebar-footer .theme-toggle-btn:active,
html[data-theme="dark"] .sidebar-footer .logout-btn:active {
    background: rgba(255, 255, 255, 0.09) !important;
    border-color: rgba(255, 255, 255, 0.16) !important;
    color: #f1f5f9 !important;
    box-shadow: none !important;
}

/* 3. 顶部吸顶栏 (Top Bar) 样式与页面标题 */
.top-bar {
    background: var(--bg-sidebar) !important;
    backdrop-filter: var(--glass-blur) !important;
    -webkit-backdrop-filter: var(--glass-blur) !important;
    border-bottom: 1px solid var(--border) !important;
    box-shadow: 0 1px 3px 0 rgba(15, 23, 42, 0.02) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

@media (min-width: 769px) {
    .top-bar {
        height: 58px !important;
        padding: 0 32px !important;
    }
}

.page-title {
    font-size: 1.22rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.025em !important;
    line-height: 1.2 !important;
    color: #0f172a !important;
}
html[data-theme="dark"] .page-title {
    color: #f8fafc !important;
}

.top-bar-right {
    gap: 12px !important;
    display: flex !important;
    align-items: center !important;
}

.top-bar.has-no-top-actions .top-bar-right,
.top-bar.has-no-top-actions .save-btn,
.top-bar.has-no-top-actions .search-wrapper {
    display: none !important;
}

/* 搜索框与保存按钮对齐规范 */
.search-wrapper {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
}

.search-input {
    height: 36px !important;
    padding: 0 12px 0 34px !important;
    border-radius: var(--radius-m) !important;
    border: 1px solid var(--border) !important;
    background: rgba(255, 255, 255, 0.7) !important;
    color: var(--text-main) !important;
    font-size: 0.85rem !important;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.02) !important;
    transition: all 0.2s ease !important;
}

@media (min-width: 769px) {
    .search-input {
        width: 260px !important;
    }
    .search-input:focus {
        width: 300px !important;
    }
}

.search-input:focus {
    background: #ffffff !important;
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px var(--primary-light) !important;
    outline: none !important;
}
html[data-theme="dark"] .search-input {
    background: rgba(255, 255, 255, 0.04) !important;
    border-color: var(--border) !important;
}
html[data-theme="dark"] .search-input:focus {
    background: rgba(255, 255, 255, 0.08) !important;
}

.search-icon {
    position: absolute !important;
    left: 11px !important;
    width: 15px !important;
    height: 15px !important;
    color: var(--text-muted) !important;
    pointer-events: none !important;
}

.save-btn {
    height: 36px !important;
    padding: 0 16px !important;
    border-radius: var(--radius-m) !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(37, 99, 235, 0.5) !important;
    box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.28), 0 2px 8px rgba(37, 99, 235, 0.25) !important;
    transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    cursor: pointer !important;
}
.save-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #3b82f6 0%, #2563eb 100%) !important;
    border-color: rgba(96, 165, 250, 0.7) !important;
    transform: translateY(-1px) !important;
    box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.38), 0 4px 14px rgba(37, 99, 235, 0.35) !important;
}
.save-btn:active:not(:disabled) {
    background: #1d4ed8 !important;
    transform: translateY(0) !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25) !important;
}
.save-btn:disabled,
.save-btn[aria-disabled="true"] {
    background: rgba(15, 23, 42, 0.06) !important;
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    color: #94a3b8 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* 暗色模式专属高阶微晶深邃质感 */
html[data-theme="dark"] .save-btn {
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(96, 165, 250, 0.38) !important;
    box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.28), 0 2px 10px rgba(37, 99, 235, 0.4) !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
}
html[data-theme="dark"] .save-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #3b82f6 0%, #2563eb 100%) !important;
    border-color: rgba(147, 197, 253, 0.6) !important;
    box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.4), 0 4px 16px rgba(37, 99, 235, 0.5) !important;
    transform: translateY(-1px) !important;
}
html[data-theme="dark"] .save-btn:active:not(:disabled) {
    background: #1d4ed8 !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.35) !important;
    transform: translateY(0) !important;
}
html[data-theme="dark"] .save-btn:disabled,
html[data-theme="dark"] .save-btn[aria-disabled="true"] {
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    color: rgba(255, 255, 255, 0.28) !important;
    box-shadow: none !important;
    text-shadow: none !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* 4. 配置卡片大容器 (.config-group) - 清爽通透 */
.config-group {
    background: var(--bg-card) !important;
    backdrop-filter: var(--glass-blur) !important;
    -webkit-backdrop-filter: var(--glass-blur) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-l) !important;
    padding: 24px 26px !important;
    box-shadow: var(--shadow-card) !important;
    margin-bottom: 20px !important;
}

/* 5. 二级子面板 (.config-subgroup) - 精致微间距与层次感 */
.config-subgroup-stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
}

.config-subgroup {
    background: var(--bg-card-subtle) !important;
    border: 1px solid var(--border) !important;
    border-radius: 14px !important;
    padding: 18px 20px !important;
    box-shadow: var(--shadow-subtle) !important;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.config-subgroup:hover {
    background: rgba(255, 255, 255, 0.95) !important;
    border-color: rgba(0, 102, 204, 0.25) !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04) !important;
}
html[data-theme="dark"] .config-subgroup:hover {
    background: rgba(255, 255, 255, 0.045) !important;
    border-color: rgba(56, 139, 253, 0.3) !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35) !important;
}

.config-subgroup-head {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
}

.config-subgroup:not(.is-collapsed) .config-subgroup-head {
    margin-bottom: 16px !important;
    padding-bottom: 14px !important;
    border-bottom: 1px solid var(--border) !important;
}

/* 精致小巧的图标底座 (36px x 36px) */
.config-subgroup-icon {
    width: 36px !important;
    height: 36px !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    background: var(--primary-light) !important;
    border: 1px solid rgba(0, 102, 204, 0.12) !important;
    color: var(--primary) !important;
}
html[data-theme="dark"] .config-subgroup-icon {
    background: rgba(56, 139, 253, 0.12) !important;
    border-color: rgba(56, 139, 253, 0.22) !important;
    color: var(--primary) !important;
}

.config-subgroup-icon svg {
    width: 18px !important;
    height: 18px !important;
    stroke-width: 1.8 !important;
}

.config-subgroup-title-wrap {
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
}

.config-subgroup-title {
    font-size: 0.95rem !important;
    font-weight: 650 !important;
    color: var(--text-main) !important;
    letter-spacing: -0.01em !important;
}

.config-subgroup-desc {
    font-size: 0.81rem !important;
    line-height: 1.45 !important;
    color: var(--text-muted) !important;
}

/* 优雅小巧的折叠药丸按钮 */
.config-subgroup-toggle {
    margin-left: auto !important;
    flex-shrink: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 5px 12px !important;
    border-radius: 999px !important;
    font-size: 0.76rem !important;
    font-weight: 500 !important;
    border: 1px solid var(--border) !important;
    background: rgba(255, 255, 255, 0.6) !important;
    color: var(--text-sub) !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
}
.config-subgroup-toggle:hover {
    border-color: var(--primary) !important;
    color: var(--primary) !important;
    background: var(--primary-light) !important;
}
html[data-theme="dark"] .config-subgroup-toggle {
    background: rgba(255, 255, 255, 0.04) !important;
    border-color: var(--border) !important;
}
html[data-theme="dark"] .config-subgroup-toggle:hover {
    background: rgba(56, 139, 253, 0.15) !important;
    border-color: var(--primary) !important;
    color: #ffffff !important;
}

/* 6. 警告框与规则提示条 - 彻底告别大粗边刺眼色 */
.config-subgroup-desc-warning {
    margin-top: 10px !important;
    padding: 10px 14px !important;
    border-radius: 10px !important;
    border: 1px solid rgba(239, 68, 68, 0.25) !important;
    background: rgba(239, 68, 68, 0.05) !important;
    color: #dc2626 !important;
    font-size: 0.81rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    box-shadow: none !important;
}
html[data-theme="dark"] .config-subgroup-desc-warning {
    background: rgba(239, 68, 68, 0.10) !important;
    border-color: rgba(239, 68, 68, 0.3) !important;
    color: #fca5a5 !important;
}

.config-subgroup-desc-warning.is-caution {
    border: 1px solid rgba(245, 158, 11, 0.28) !important;
    background: rgba(245, 158, 11, 0.05) !important;
    color: #b45309 !important;
    box-shadow: none !important;
}
html[data-theme="dark"] .config-subgroup-desc-warning.is-caution {
    background: rgba(245, 158, 11, 0.10) !important;
    border-color: rgba(245, 158, 11, 0.3) !important;
    color: #fcd34d !important;
}

.config-subgroup-desc-warning.is-notice {
    border-color: rgba(99, 102, 241, 0.22) !important;
    background: linear-gradient(135deg, rgba(238, 242, 255, 0.98), rgba(224, 231, 255, 0.92)) !important;
    color: #4338ca !important;
    box-shadow: 0 8px 18px rgba(99, 102, 241, 0.10) !important;
}
html[data-theme="dark"] .config-subgroup-desc-warning.is-notice {
    border-color: rgba(129, 140, 248, 0.34) !important;
    background: linear-gradient(135deg, rgba(49, 46, 129, 0.42), rgba(67, 56, 202, 0.22)) !important;
    color: #c7d2fe !important;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.30) !important;
}

.config-subgroup-desc-warning.is-notice::before {
    color: var(--primary) !important;
}

html[data-theme="dark"] .config-subgroup-desc-warning.is-notice::before {
    color: #a5b4fc !important;
}

.config-subgroup-desc-warning.is-caution::before,
.config-subgroup-desc-warning.is-notice::before {
    font-size: 0.74rem !important;
    font-weight: 700 !important;
    margin-bottom: 4px !important;
    letter-spacing: 0.02em !important;
}

/* 7. 表单控件 (Inputs, Selects) - 紧凑、利落、精致 */
.form-input,
.kv-key-input,
.kv-blacklist-input,
.kv-note-input,
.vl-input,
.organize-overwrite-rule-select-wrap select {
    height: 38px !important;
    padding: 0 12px !important;
    border-radius: var(--radius-m) !important;
    border: 1px solid var(--border) !important;
    background: #ffffff !important;
    color: var(--text-main) !important;
    font-size: 0.88rem !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.02) !important;
    transition: all 0.15s ease !important;
}
.form-input:focus,
.kv-key-input:focus,
.kv-blacklist-input:focus,
.kv-note-input:focus,
.vl-input:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px var(--primary-light) !important;
    outline: none !important;
}
html[data-theme="dark"] .form-input,
html[data-theme="dark"] .kv-key-input,
html[data-theme="dark"] .kv-blacklist-input,
html[data-theme="dark"] .kv-note-input,
html[data-theme="dark"] .vl-input,
html[data-theme="dark"] .organize-overwrite-rule-select-wrap select {
    background: rgba(255, 255, 255, 0.035) !important;
    border-color: var(--border) !important;
}

/* 8. 登录卡片 (.login-card) - 完美黄金比例与精致微阴影 */
.login-card {
    background: var(--bg-card) !important;
    backdrop-filter: var(--glass-blur) !important;
    -webkit-backdrop-filter: var(--glass-blur) !important;
    border: 1px solid var(--border) !important;
    border-radius: 20px !important;
    padding: 36px 32px !important;
    box-shadow: 0 12px 36px -4px rgba(15, 23, 42, 0.08) !important;
}
html[data-theme="dark"] .login-card {
    background: rgba(18, 24, 38, 0.85) !important;
    border-color: var(--border) !important;
    box-shadow: 0 16px 44px -4px rgba(0, 0, 0, 0.6) !important;
}

.login-input {
    height: 42px !important;
    padding: 0 14px !important;
    border-radius: var(--radius-m) !important;
    border: 1px solid var(--border) !important;
    background: #ffffff !important;
    font-size: 0.92rem !important;
}
html[data-theme="dark"] .login-input {
    background: rgba(255, 255, 255, 0.04) !important;
    border-color: var(--border) !important;
}

.login-btn {
    height: 42px !important;
    border-radius: var(--radius-m) !important;
    background: var(--primary) !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    box-shadow: 0 2px 10px rgba(0, 102, 204, 0.25) !important;
}

/* 9. Emby 看板卡片与指标矩阵 */
.emby-proxy-card,
.stat-card,
.dashboard-stat-card,
.emby-media-card {
    background: var(--bg-card) !important;
    backdrop-filter: var(--glass-blur) !important;
    -webkit-backdrop-filter: var(--glass-blur) !important;
    border: 1px solid var(--border) !important;
    border-radius: 14px !important;
    box-shadow: var(--shadow-subtle) !important;
}

/* 10. 实用工具弹窗视口定位与极致通透毛玻璃/磨砂透明玻璃质感系统 (Apple / Liquid Glassmorphism) */
.utility-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    margin: 0 !important;
    background: rgba(15, 23, 42, 0.32) !important;
    backdrop-filter: blur(24px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
    z-index: 9998 !important;
    animation: utilityFadeIn 0.22s ease-out !important;
}
html[data-theme="dark"] .utility-modal-overlay {
    background: rgba(2, 6, 23, 0.65) !important;
    backdrop-filter: blur(28px) saturate(200%) !important;
    -webkit-backdrop-filter: blur(28px) saturate(200%) !important;
}

.utility-modal {
    position: fixed !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    padding: 0 !important;
    width: min(920px, calc(100vw - 40px)) !important;
    max-height: min(88vh, 860px) !important;
    display: flex !important;
    flex-direction: column !important;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.42) 100%) !important;
    backdrop-filter: blur(40px) saturate(200%) !important;
    -webkit-backdrop-filter: blur(40px) saturate(200%) !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-radius: 24px !important;
    box-shadow: 0 32px 80px -12px rgba(15, 23, 42, 0.2),
                0 0 0 1px rgba(255, 255, 255, 0.7) inset,
                0 1.5px 0 0 rgba(255, 255, 255, 1) inset !important;
    z-index: 9999 !important;
    overflow: hidden !important;
    animation: utilityModalIn 0.24s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

html[data-theme="dark"] .utility-modal {
    background: linear-gradient(145deg, rgba(30, 41, 59, 0.52) 0%, rgba(15, 23, 42, 0.62) 100%) !important;
    backdrop-filter: blur(45px) saturate(220%) !important;
    -webkit-backdrop-filter: blur(45px) saturate(220%) !important;
    border-color: rgba(255, 255, 255, 0.13) !important;
    box-shadow: 0 36px 90px -12px rgba(0, 0, 0, 0.82),
                0 0 0 1px rgba(255, 255, 255, 0.1) inset,
                0 1.5px 0 0 rgba(255, 255, 255, 0.22) inset !important;
}

.utility-modal.utility-modal-wide {
    width: min(1080px, calc(100vw - 48px)) !important;
}

/* 弹窗头部：轻透微晶磨砂 */
.utility-modal-header {
    flex-shrink: 0 !important;
    padding: 18px 26px 16px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.6) !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    background: rgba(255, 255, 255, 0.45) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border-top-left-radius: 24px !important;
    border-top-right-radius: 24px !important;
}
html[data-theme="dark"] .utility-modal-header {
    background: rgba(255, 255, 255, 0.035) !important;
    border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}

.utility-modal-title {
    font-size: 1.22rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    letter-spacing: -0.02em !important;
    line-height: 1.3 !important;
    margin: 0 !important;
}
html[data-theme="dark"] .utility-modal-title {
    color: #f8fafc !important;
}

.utility-modal-subtitle {
    font-size: 0.84rem !important;
    font-weight: 400 !important;
    color: #64748b !important;
    line-height: 1.5 !important;
    margin-top: 3px !important;
}
html[data-theme="dark"] .utility-modal-subtitle {
    color: #94a3b8 !important;
}

.utility-modal-close {
    width: 34px !important;
    height: 34px !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    background: rgba(255, 255, 255, 0.5) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    color: #64748b !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04), 0 1px 0 rgba(255, 255, 255, 0.9) inset !important;
    transition: all 0.15s ease !important;
}
.utility-modal-close:hover {
    background: rgba(239, 68, 68, 0.12) !important;
    border-color: rgba(239, 68, 68, 0.35) !important;
    color: #ef4444 !important;
    transform: scale(1.05) !important;
}
html[data-theme="dark"] .utility-modal-close {
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
    color: #94a3b8 !important;
}
html[data-theme="dark"] .utility-modal-close:hover {
    background: rgba(239, 68, 68, 0.2) !important;
    border-color: rgba(239, 68, 68, 0.45) !important;
    color: #f87171 !important;
}

/* 弹窗内容区：100% 透明，彻底释放背景毛玻璃的光影折射 */
.utility-modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 22px 26px !important;
    background: transparent !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}
html[data-theme="dark"] .utility-modal-body {
    background: transparent !important;
}

/* 确保弹窗内所有直接子卡片保持自然撑开尺寸，绝不被 flex 容器垂直压缩收缩导致溢出截断或滚动条消失 */
.utility-modal-body > * {
    flex-shrink: 0 !important;
}

/* Emby 封面生成弹窗及卡片内部子容器取消强制裁切，允许内容完整自然撑开，工具栏随页面上下自然滚动 */
.utility-cover-plugin-modal {
    overflow: hidden !important;
}
.utility-cover-plugin-modal .utility-modal-body,
.utility-cover-plugin-body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    flex: 1 1 auto !important;
}
.utility-cover-plugin-card {
    overflow: visible !important;
}
.utility-cover-toolbar {
    position: static !important;
    margin-bottom: 0 !important;
}

/* 统一微晶毛玻璃优雅细窄滚动条 */
.utility-modal-body::-webkit-scrollbar {
    width: 8px !important;
    height: 8px !important;
}
.utility-modal-body::-webkit-scrollbar-track {
    background: transparent !important;
}
.utility-modal-body::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.32) !important;
    border-radius: 999px !important;
}
.utility-modal-body::-webkit-scrollbar-thumb:hover {
    background: rgba(148, 163, 184, 0.55) !important;
}
html[data-theme="dark"] .utility-modal-body::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.18) !important;
}
html[data-theme="dark"] .utility-modal-body::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.35) !important;
}


/* 弹窗内部各张卡片：液态微晶毛玻璃卡片 (Nested Frosted Glass) */
.utility-ai-card,
.utility-modal-card,
.utility-cover-section,
.utility-cover-action-card,
.utility-share-clean-stat-card,
.utility-share-clean-detail-summary,
.utility-share-clean-detail-item,
.utility-tmdb-search-result-card,
.utility-tmdb-regex-card {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.3) 100%) !important;
    backdrop-filter: blur(18px) saturate(170%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(170%) !important;
    border: 1px solid rgba(255, 255, 255, 0.9) !important;
    border-radius: 16px !important;
    padding: 18px 22px !important;
    box-shadow: 0 6px 20px -3px rgba(15, 23, 42, 0.04),
                0 1px 0 0 rgba(255, 255, 255, 1) inset,
                0 0 0 1px rgba(226, 232, 240, 0.4) !important;
    gap: 14px !important;
    transition: all 0.18s ease !important;
}
html[data-theme="dark"] .utility-ai-card,
html[data-theme="dark"] .utility-modal-card,
html[data-theme="dark"] .utility-cover-section,
html[data-theme="dark"] .utility-cover-action-card,
html[data-theme="dark"] .utility-share-clean-stat-card,
html[data-theme="dark"] .utility-share-clean-detail-summary,
html[data-theme="dark"] .utility-share-clean-detail-item,
html[data-theme="dark"] .utility-tmdb-search-result-card,
html[data-theme="dark"] .utility-tmdb-regex-card {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.065) 0%, rgba(255, 255, 255, 0.02) 100%) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border-color: rgba(255, 255, 255, 0.09) !important;
    box-shadow: 0 6px 22px -3px rgba(0, 0, 0, 0.35),
                0 1px 0 0 rgba(255, 255, 255, 0.12) inset !important;
}

.utility-ai-card-head {
    font-size: 0.92rem !important;
    font-weight: 650 !important;
    color: #1e293b !important;
    letter-spacing: -0.01em !important;
    padding-bottom: 8px !important;
    border-bottom: 1px solid rgba(226, 232, 240, 0.55) !important;
}
html[data-theme="dark"] .utility-ai-card-head {
    color: #f1f5f9 !important;
    border-bottom-color: rgba(255, 255, 255, 0.06) !important;
}

/* 内部输入框与表单控件：磨砂半透明玻璃输入框 */
.utility-modal .form-input,
.utility-ai-card .form-input,
.utility-ai-field input[type="text"],
.utility-ai-field input[type="number"],
.utility-ai-field textarea,
.utility-cover-plugin-modal input[type="text"],
.utility-cover-plugin-modal input[type="password"] {
    background: rgba(255, 255, 255, 0.52) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border: 1px solid rgba(203, 213, 225, 0.75) !important;
    border-radius: 9px !important;
    color: #0f172a !important;
    padding: 9px 12px !important;
    font-size: 0.86rem !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.03), 0 1px 0 rgba(255, 255, 255, 0.9) !important;
    transition: all 0.15s ease !important;
}
html[data-theme="dark"] .utility-modal .form-input,
html[data-theme="dark"] .utility-ai-card .form-input,
html[data-theme="dark"] .utility-ai-field input[type="text"],
html[data-theme="dark"] .utility-ai-field input[type="number"],
html[data-theme="dark"] .utility-ai-field textarea,
html[data-theme="dark"] .utility-cover-plugin-modal input[type="text"],
html[data-theme="dark"] .utility-cover-plugin-modal input[type="password"] {
    background: rgba(15, 23, 42, 0.42) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: #f1f5f9 !important;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.35), 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}
.utility-modal .form-input:focus,
.utility-ai-card .form-input:focus {
    background: rgba(255, 255, 255, 0.88) !important;
    border-color: #2563eb !important;
    box-shadow: 0 0 0 3.5px rgba(37, 99, 235, 0.16), inset 0 1px 2px rgba(0, 0, 0, 0.02) !important;
    outline: none !important;
}
html[data-theme="dark"] .utility-modal .form-input:focus,
html[data-theme="dark"] .utility-ai-card .form-input:focus {
    background: rgba(15, 23, 42, 0.75) !important;
    border-color: #38bdf8 !important;
    box-shadow: 0 0 0 3.5px rgba(56, 189, 248, 0.22), inset 0 1px 2px rgba(0, 0, 0, 0.2) !important;
}

/* Switch 开关行与复选卡片：半透磨砂微晶小砖 */
.utility-ai-switch-row,
.utility-cover-library-item,
.bot-cmd-row {
    background: rgba(255, 255, 255, 0.46) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-radius: 11px !important;
    padding: 8px 12px !important;
    transition: all 0.15s ease !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.02), 0 1px 0 rgba(255, 255, 255, 0.9) inset !important;
}
.utility-ai-switch-row:hover,
.utility-cover-library-item:hover,
.bot-cmd-row:hover {
    border-color: rgba(37, 99, 235, 0.35) !important;
    background: rgba(255, 255, 255, 0.72) !important;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.04), 0 1px 0 rgba(255, 255, 255, 1) inset !important;
}
html[data-theme="dark"] .utility-ai-switch-row,
html[data-theme="dark"] .utility-cover-library-item,
html[data-theme="dark"] .bot-cmd-row {
    background: rgba(255, 255, 255, 0.035) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border-color: rgba(255, 255, 255, 0.075) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
}
html[data-theme="dark"] .utility-ai-switch-row:hover,
html[data-theme="dark"] .utility-cover-library-item:hover,
html[data-theme="dark"] .bot-cmd-row:hover {
    border-color: rgba(56, 189, 248, 0.3) !important;
    background: rgba(255, 255, 255, 0.065) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35), 0 1px 0 rgba(255, 255, 255, 0.12) inset !important;
}

/* 工具栏面板与多级按钮色彩体系重构 */
.utility-ai-toolbar,
#utility-bot-commands-modal .transfer-history-header {
    background: rgba(255, 255, 255, 0.52) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-radius: 14px !important;
    padding: 10px 14px !important;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.02), 0 1px 0 rgba(255, 255, 255, 0.95) inset !important;
}
html[data-theme="dark"] .utility-ai-toolbar,
html[data-theme="dark"] #utility-bot-commands-modal .transfer-history-header {
    background: rgba(255, 255, 255, 0.04) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border-color: rgba(255, 255, 255, 0.075) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 1px 0 rgba(255, 255, 255, 0.1) inset !important;
}

.utility-ai-status {
    font-size: 0.82rem !important;
    font-weight: 500 !important;
    color: #475569 !important;
}
html[data-theme="dark"] .utility-ai-status {
    color: #94a3b8 !important;
}

/* 次级按钮 (刷新、AI连接测试等) - 磨砂透光玻璃按钮 */
.utility-modal .transfer-history-refresh-btn,
.utility-ai-actions .transfer-history-refresh-btn,
.utility-modal .utility-cover-action-btn:not(.is-primary) {
    background: rgba(241, 245, 249, 0.65) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    color: #334155 !important;
    border: 1px solid rgba(203, 213, 225, 0.75) !important;
    border-radius: 9px !important;
    font-size: 0.82rem !important;
    font-weight: 550 !important;
    padding: 6px 13px !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02), 0 1px 0 rgba(255, 255, 255, 0.8) inset !important;
    transition: all 0.15s ease !important;
}
.utility-modal .transfer-history-refresh-btn:hover,
.utility-ai-actions .transfer-history-refresh-btn:hover,
.utility-modal .utility-cover-action-btn:not(.is-primary):hover {
    background: rgba(226, 232, 240, 0.85) !important;
    border-color: #94a3b8 !important;
    color: #0f172a !important;
    transform: translateY(-1px) !important;
}
html[data-theme="dark"] .utility-modal .transfer-history-refresh-btn,
html[data-theme="dark"] .utility-ai-actions .transfer-history-refresh-btn,
html[data-theme="dark"] .utility-modal .utility-cover-action-btn:not(.is-primary) {
    background: rgba(255, 255, 255, 0.07) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    color: #e2e8f0 !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
}
html[data-theme="dark"] .utility-modal .transfer-history-refresh-btn:hover,
html[data-theme="dark"] .utility-ai-actions .transfer-history-refresh-btn:hover,
html[data-theme="dark"] .utility-modal .utility-cover-action-btn:not(.is-primary):hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
}

/* 主操作按钮 (保存配置、保存、开始生成) - 微晶立体品牌渐变蓝 */
.utility-modal #ai-media-parser-save-btn,
.utility-modal #bot-commands-save-btn,
.utility-modal #api123-rate-limit-save-btn,
.utility-modal #tmdb-settings-save-btn,
.utility-modal button[id$="-save-btn"],
.utility-modal .utility-cover-action-btn.is-primary {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%) !important;
    color: #ffffff !important;
    border: 1px solid #1d4ed8 !important;
    border-radius: 9px !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    padding: 6px 15px !important;
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.35), 0 1px 0 rgba(255, 255, 255, 0.25) inset !important;
    transition: all 0.15s ease !important;
}
.utility-modal #ai-media-parser-save-btn:hover,
.utility-modal #bot-commands-save-btn:hover,
.utility-modal #api123-rate-limit-save-btn:hover,
.utility-modal #tmdb-settings-save-btn:hover,
.utility-modal button[id$="-save-btn"]:hover,
.utility-modal .utility-cover-action-btn.is-primary:hover {
    background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%) !important;
    box-shadow: 0 6px 18px rgba(37, 99, 235, 0.45), 0 1px 0 rgba(255, 255, 255, 0.3) inset !important;
    transform: translateY(-1px) !important;
}

/* 危险/清理操作按钮 (清空识别缓存等) - 磨砂柔和警示红 */
.utility-modal .transfer-history-danger-btn,
.utility-ai-actions .transfer-history-danger-btn {
    background: rgba(239, 68, 68, 0.08) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    color: #dc2626 !important;
    border: 1px solid rgba(239, 68, 68, 0.25) !important;
    border-radius: 9px !important;
    font-size: 0.82rem !important;
    font-weight: 550 !important;
    padding: 6px 13px !important;
}
.utility-modal .transfer-history-danger-btn:hover,
.utility-ai-actions .transfer-history-danger-btn:hover {
    background: rgba(239, 68, 68, 0.15) !important;
    border-color: rgba(239, 68, 68, 0.4) !important;
    color: #b91c1c !important;
    transform: translateY(-1px) !important;
}
html[data-theme="dark"] .utility-modal .transfer-history-danger-btn,
html[data-theme="dark"] .utility-ai-actions .transfer-history-danger-btn {
    background: rgba(239, 68, 68, 0.12) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    color: #f87171 !important;
    border-color: rgba(239, 68, 68, 0.3) !important;
}
html[data-theme="dark"] .utility-modal .transfer-history-danger-btn:hover,
html[data-theme="dark"] .utility-ai-actions .transfer-history-danger-btn:hover {
    background: rgba(239, 68, 68, 0.22) !important;
    color: #fca5a5 !important;
    border-color: rgba(239, 68, 68, 0.48) !important;
    transform: translateY(-1px) !important;
}

/* 机器人命令列表容器美化：半透微晶玻璃槽 */
#utility-bot-commands-modal .transfer-history-container {
    background: rgba(255, 255, 255, 0.45) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border: 1px solid rgba(255, 255, 255, 0.8) !important;
    border-radius: 14px !important;
    padding: 12px !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.02), 0 1px 0 rgba(255, 255, 255, 0.9) inset !important;
}
html[data-theme="dark"] #utility-bot-commands-modal .transfer-history-container {
    background: rgba(255, 255, 255, 0.035) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border-color: rgba(255, 255, 255, 0.075) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 1px 0 rgba(255, 255, 255, 0.1) inset !important;
}

/* 实用工具主页卡片全面升级磨砂毛玻璃微晶质感 */
.utility-tool-card {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0.48) 100%) !important;
    backdrop-filter: blur(18px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(160%) !important;
    border: 1px solid rgba(255, 255, 255, 0.9) !important;
    border-radius: 18px !important;
    box-shadow: 0 4px 18px -2px rgba(15, 23, 42, 0.04),
                0 1px 0 0 rgba(255, 255, 255, 0.95) inset,
                0 0 0 1px rgba(226, 232, 240, 0.4) !important;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.utility-tool-card:hover {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.72) 100%) !important;
    transform: translateY(-3px) scale(1.006) !important;
    border-color: rgba(37, 99, 235, 0.35) !important;
    box-shadow: 0 16px 36px -4px rgba(15, 23, 42, 0.1),
                0 1px 0 0 rgba(255, 255, 255, 1) inset !important;
}
html[data-theme="dark"] .utility-tool-card {
    background: linear-gradient(145deg, rgba(30, 41, 59, 0.48) 0%, rgba(15, 23, 42, 0.58) 100%) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 18px !important;
    box-shadow: 0 6px 22px -3px rgba(0, 0, 0, 0.4),
                0 1px 0 0 rgba(255, 255, 255, 0.12) inset !important;
}
html[data-theme="dark"] .utility-tool-card:hover {
    background: linear-gradient(145deg, rgba(30, 41, 59, 0.68) 0%, rgba(15, 23, 42, 0.78) 100%) !important;
    transform: translateY(-3px) scale(1.006) !important;
    border-color: rgba(56, 189, 248, 0.4) !important;
    box-shadow: 0 18px 40px -4px rgba(0, 0, 0, 0.65),
                0 1px 0 0 rgba(255, 255, 255, 0.18) inset !important;
}

/* -------------------------------------------------------------
 * 实用工具卡片与弹窗视觉协调体系：简约、大气、微晶质感全覆盖
 * ----------------------------------------------------------- */

/* 1. 命令调整弹窗：去除重复标题，保留纯净操作栏 */
#utility-bot-commands-modal .transfer-history-header {
    border-bottom: none !important;
    padding: 12px 18px !important;
    margin-bottom: 12px !important;
    background: rgba(255, 255, 255, 0.45) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-radius: 14px !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.02), 0 1px 0 rgba(255, 255, 255, 0.9) inset !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
}
html[data-theme="dark"] #utility-bot-commands-modal .transfer-history-header {
    background: rgba(255, 255, 255, 0.035) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
}
#utility-bot-commands-modal .transfer-history-title-wrap {
    display: none !important;
}

/* 封面生成样式选择微晶轻提示 */
.utility-cover-plugin-alert:not(.utility-cover-plugin-alert-danger) {
    background: rgba(14, 165, 233, 0.06) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border: 1px solid rgba(14, 165, 233, 0.2) !important;
    color: #0369a1 !important;
    border-radius: 12px !important;
    padding: 10px 14px !important;
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
    margin-bottom: 14px !important;
}
html[data-theme="dark"] .utility-cover-plugin-alert:not(.utility-cover-plugin-alert-danger) {
    background: rgba(14, 165, 233, 0.1) !important;
    border-color: rgba(56, 189, 248, 0.22) !important;
    color: #7dd3fc !important;
}

/* 2. 115 分享 STRM 失效检测 & Emby 洗版残留清理：弹窗尺寸与布局规范 */
.utility-share-strm-invalid-cleaner-modal,
.utility-emby-metadata-cleaner-modal {
    padding: 0 !important;
    width: min(1120px, calc(100vw - 32px)) !important;
    max-height: min(90vh, 920px) !important;
}
.utility-share-clean-body,
.utility-emby-metadata-cleaner-body {
    padding: 20px 24px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}

/* 3. 工具栏：半透微晶面板，统一步调 */
.utility-share-clean-toolbar,
.utility-emby-cleaner-toolbar,
.utility-cover-toolbar {
    background: rgba(255, 255, 255, 0.45) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-radius: 14px !important;
    padding: 14px 18px !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.02), 0 1px 0 rgba(255, 255, 255, 0.9) inset !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 16px !important;
    flex-wrap: wrap !important;
}
html[data-theme="dark"] .utility-share-clean-toolbar,
html[data-theme="dark"] .utility-emby-cleaner-toolbar,
html[data-theme="dark"] .utility-cover-toolbar {
    background: rgba(255, 255, 255, 0.035) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
}
.utility-share-clean-toolbar-main,
.utility-emby-cleaner-toolbar-main {
    max-width: 680px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

/* 4. 按钮系统：标准层级与毛玻璃光影 */
.utility-modal .utility-cover-mini-btn {
    background: rgba(241, 245, 249, 0.65) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    color: #334155 !important;
    border: 1px solid rgba(203, 213, 225, 0.75) !important;
    border-radius: 9px !important;
    font-size: 0.82rem !important;
    font-weight: 550 !important;
    padding: 6px 14px !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02), 0 1px 0 rgba(255, 255, 255, 0.8) inset !important;
    transition: all 0.15s ease !important;
    cursor: pointer !important;
}
.utility-modal .utility-cover-mini-btn:hover:not(:disabled) {
    background: rgba(226, 232, 240, 0.85) !important;
    border-color: #94a3b8 !important;
    color: #0f172a !important;
    transform: translateY(-1px) !important;
}
html[data-theme="dark"] .utility-modal .utility-cover-mini-btn {
    background: rgba(255, 255, 255, 0.07) !important;
    color: #e2e8f0 !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
}
html[data-theme="dark"] .utility-modal .utility-cover-mini-btn:hover:not(:disabled) {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
}

/* 主操作按钮：品牌渐变蓝 (立即检测/保存配置/移入冗余目录) */
.utility-modal .utility-cover-mini-btn-primary,
.utility-modal #share-strm-invalid-cleaner-run-btn,
.utility-modal #share-strm-invalid-cleaner-save-btn,
.utility-modal #emby-metadata-cleaner-clean-btn {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%) !important;
    color: #ffffff !important;
    border: 1px solid #1d4ed8 !important;
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.35), 0 1px 0 rgba(255, 255, 255, 0.25) inset !important;
}
.utility-modal .utility-cover-mini-btn-primary:hover:not(:disabled),
.utility-modal #share-strm-invalid-cleaner-run-btn:hover:not(:disabled),
.utility-modal #share-strm-invalid-cleaner-save-btn:hover:not(:disabled),
.utility-modal #emby-metadata-cleaner-clean-btn:hover:not(:disabled) {
    background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%) !important;
    box-shadow: 0 6px 18px rgba(37, 99, 235, 0.45), 0 1px 0 rgba(255, 255, 255, 0.3) inset !important;
    transform: translateY(-1px) !important;
}

/* 次要操作按钮：柔和天青蓝 (选择目录/选择文件夹) */
.utility-modal .utility-cover-mini-btn-accent,
.utility-modal #share-strm-invalid-cleaner-pick-folder-btn,
.utility-modal #emby-metadata-cleaner-pick-folder-btn {
    background: rgba(14, 165, 233, 0.1) !important;
    color: #0284c7 !important;
    border: 1px solid rgba(14, 165, 233, 0.3) !important;
}
.utility-modal .utility-cover-mini-btn-accent:hover:not(:disabled),
.utility-modal #share-strm-invalid-cleaner-pick-folder-btn:hover:not(:disabled),
.utility-modal #emby-metadata-cleaner-pick-folder-btn:hover:not(:disabled) {
    background: rgba(14, 165, 233, 0.18) !important;
    border-color: rgba(14, 165, 233, 0.45) !important;
    color: #0369a1 !important;
    transform: translateY(-1px) !important;
}
html[data-theme="dark"] .utility-modal .utility-cover-mini-btn-accent,
html[data-theme="dark"] .utility-modal #share-strm-invalid-cleaner-pick-folder-btn,
html[data-theme="dark"] .utility-modal #emby-metadata-cleaner-pick-folder-btn {
    background: rgba(14, 165, 233, 0.14) !important;
    color: #38bdf8 !important;
    border-color: rgba(56, 189, 248, 0.3) !important;
}

/* 停止按钮 (激活/未激活) */
#share-strm-invalid-cleaner-stop-btn:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    transform: none !important;
}
#share-strm-invalid-cleaner-stop-btn:not(:disabled) {
    background: rgba(239, 68, 68, 0.1) !important;
    color: #dc2626 !important;
    border-color: rgba(239, 68, 68, 0.3) !important;
}
#share-strm-invalid-cleaner-stop-btn:not(:disabled):hover {
    background: rgba(239, 68, 68, 0.2) !important;
    color: #b91c1c !important;
    border-color: rgba(239, 68, 68, 0.5) !important;
}

/* 5. 115 与 洗版清理 统计卡片：微晶指标卡 (消除原奇怪绿底与深色浑浊) */
.utility-share-clean-stat-grid,
.utility-emby-cleaner-summary-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
    padding-top: 4px !important;
}
.utility-share-clean-stat-card,
.utility-emby-cleaner-stat-card {
    background: rgba(255, 255, 255, 0.55) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-radius: 13px !important;
    padding: 12px 16px !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.02), 0 1px 0 rgba(255, 255, 255, 0.9) inset !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    justify-content: center !important;
    min-height: 74px !important;
    transition: all 0.15s ease !important;
}
.utility-share-clean-stat-card:hover,
.utility-emby-cleaner-stat-card:hover {
    background: rgba(255, 255, 255, 0.75) !important;
    border-color: rgba(37, 99, 235, 0.3) !important;
    transform: translateY(-1px) !important;
}
html[data-theme="dark"] .utility-share-clean-stat-card,
html[data-theme="dark"] .utility-emby-cleaner-stat-card {
    background: rgba(255, 255, 255, 0.035) !important;
    border: 1px solid rgba(255, 255, 255, 0.075) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
}
html[data-theme="dark"] .utility-share-clean-stat-card:hover,
html[data-theme="dark"] .utility-emby-cleaner-stat-card:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(56, 189, 248, 0.25) !important;
}

.utility-share-clean-stat-card span,
.utility-emby-cleaner-stat-label {
    font-size: 0.78rem !important;
    color: #64748b !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
}
html[data-theme="dark"] .utility-share-clean-stat-card span,
html[data-theme="dark"] .utility-emby-cleaner-stat-label {
    color: #94a3b8 !important;
}

.utility-share-clean-stat-card strong,
.utility-emby-cleaner-stat-card strong {
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    letter-spacing: -0.02em !important;
    font-variant-numeric: tabular-nums !important;
    line-height: 1.2 !important;
}
html[data-theme="dark"] .utility-share-clean-stat-card strong,
html[data-theme="dark"] .utility-emby-cleaner-stat-card strong {
    color: #f1f5f9 !important;
}

/* 状态数字针对性点睛：失效/删除用柔和赤红，有效用清新绿 */
#share-strm-invalid-cleaner-stat-invalid,
#share-strm-invalid-cleaner-stat-deleted {
    color: #ef4444 !important;
}
html[data-theme="dark"] #share-strm-invalid-cleaner-stat-invalid,
html[data-theme="dark"] #share-strm-invalid-cleaner-stat-deleted {
    color: #f87171 !important;
}
#share-strm-invalid-cleaner-stat-valid {
    color: #10b981 !important;
}
html[data-theme="dark"] #share-strm-invalid-cleaner-stat-valid {
    color: #34d399 !important;
}

/* 6. 日志与历史列表条目：剔除原泥色与怪异色，采用微晶通透提示条 */
.utility-share-clean-log-item,
.utility-share-clean-history-item,
.utility-share-clean-detail-item {
    background: rgba(255, 255, 255, 0.45) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border: 1px solid rgba(226, 232, 240, 0.8) !important;
    border-radius: 12px !important;
    padding: 12px 16px !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.02) !important;
}
html[data-theme="dark"] .utility-share-clean-log-item,
html[data-theme="dark"] .utility-share-clean-history-item,
html[data-theme="dark"] .utility-share-clean-detail-item {
    background: rgba(255, 255, 255, 0.035) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25) !important;
}
.utility-share-clean-log-item.is-error,
.utility-share-clean-history-item.is-error,
.utility-share-clean-detail-item.is-danger {
    background: rgba(239, 68, 68, 0.05) !important;
    border-color: rgba(239, 68, 68, 0.25) !important;
    border-left: 3.5px solid #ef4444 !important;
}
html[data-theme="dark"] .utility-share-clean-log-item.is-error,
html[data-theme="dark"] .utility-share-clean-history-item.is-error,
html[data-theme="dark"] .utility-share-clean-detail-item.is-danger {
    background: rgba(239, 68, 68, 0.1) !important;
    border-color: rgba(239, 68, 68, 0.28) !important;
    border-left-color: #f87171 !important;
}
.utility-share-clean-log-item.is-warning,
.utility-share-clean-history-item.is-partial {
    background: rgba(245, 158, 11, 0.05) !important;
    border-color: rgba(245, 158, 11, 0.25) !important;
    border-left: 3.5px solid #f59e0b !important;
}
html[data-theme="dark"] .utility-share-clean-log-item.is-warning,
html[data-theme="dark"] .utility-share-clean-history-item.is-partial {
    background: rgba(245, 158, 11, 0.1) !important;
    border-color: rgba(245, 158, 11, 0.28) !important;
    border-left-color: #fbbf24 !important;
}
.utility-share-clean-history-item.is-success {
    background: rgba(16, 185, 129, 0.05) !important;
    border-color: rgba(16, 185, 129, 0.25) !important;
    border-left: 3.5px solid #10b981 !important;
}
html[data-theme="dark"] .utility-share-clean-history-item.is-success {
    background: rgba(16, 185, 129, 0.1) !important;
    border-color: rgba(16, 185, 129, 0.28) !important;
    border-left-color: #34d399 !important;
}

/* 7. 洗版残留清理：柔和微晶警示条 (取代粗暴大红框) */
.utility-cover-plugin-alert-danger {
    background: rgba(239, 68, 68, 0.05) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border: 1px solid rgba(239, 68, 68, 0.22) !important;
    color: #b91c1c !important;
    border-radius: 12px !important;
    padding: 11px 15px !important;
    font-size: 0.8rem !important;
    line-height: 1.55 !important;
    display: flex !important;
    gap: 10px !important;
    align-items: flex-start !important;
    box-shadow: 0 1px 3px rgba(239, 68, 68, 0.04) !important;
}
html[data-theme="dark"] .utility-cover-plugin-alert-danger {
    background: rgba(239, 68, 68, 0.09) !important;
    border-color: rgba(239, 68, 68, 0.28) !important;
    color: #fca5a5 !important;
}

/* 8. 辅助说明与提示条微晶化 */
.utility-cover-helper,
.utility-ai-helper {
    font-size: 0.79rem !important;
    color: #64748b !important;
    line-height: 1.55 !important;
}
html[data-theme="dark"] .utility-cover-helper,
html[data-theme="dark"] .utility-ai-helper {
    color: #94a3b8 !important;
}
.utility-cover-helper code,
.utility-ai-helper code {
    background: rgba(148, 163, 184, 0.15) !important;
    padding: 1px 5px !important;
    border-radius: 5px !important;
    font-size: 0.76rem !important;
    color: inherit !important;
    font-family: inherit !important;
}

/* 9. 内部子卡片统一毛玻璃微晶质感 */
.utility-cover-plugin-card,
.utility-share-clean-config-card,
.utility-share-clean-progress-card,
.utility-share-clean-history-card,
.utility-share-clean-detail-card {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.52) 0%, rgba(255, 255, 255, 0.28) 100%) !important;
    backdrop-filter: blur(16px) saturate(170%) !important;
    -webkit-backdrop-filter: blur(16px) saturate(170%) !important;
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    border-radius: 16px !important;
    padding: 18px 20px !important;
    box-shadow: 0 4px 16px -2px rgba(15, 23, 42, 0.03),
                0 1px 0 0 rgba(255, 255, 255, 0.95) inset,
                0 0 0 1px rgba(226, 232, 240, 0.35) !important;
}
html[data-theme="dark"] .utility-cover-plugin-card,
html[data-theme="dark"] .utility-share-clean-config-card,
html[data-theme="dark"] .utility-share-clean-progress-card,
html[data-theme="dark"] .utility-share-clean-history-card,
html[data-theme="dark"] .utility-share-clean-detail-card {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.015) 100%) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 4px 18px -2px rgba(0, 0, 0, 0.35),
                0 1px 0 0 rgba(255, 255, 255, 0.1) inset !important;
}

.utility-cover-plugin-section-head {
    font-size: 0.92rem !important;
    font-weight: 650 !important;
    color: #1e293b !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 12px !important;
}
html[data-theme="dark"] .utility-cover-plugin-section-head {
    color: #f1f5f9 !important;
}
.utility-cover-plugin-section-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #0284c7 !important;
}
html[data-theme="dark"] .utility-cover-plugin-section-icon {
    color: #38bdf8 !important;
}

/* TMDB 搜索二级弹窗层级更高 */
#tmdb-regex-search-modal-overlay {
    z-index: 10008 !important;
}
#tmdb-regex-search-modal {
    z-index: 10009 !important;
}

@keyframes utilityFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes utilityModalIn {
    from {
        opacity: 0;
        transform: translate(-50%, -47%) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

/* 彻底隐藏前端空白无用的配置页（侧边栏菜单项与主内容区） */
.nav-item[data-frontend-hidden="1"],
.config-group[data-frontend-hidden="1"],
.nav-item[data-title*="直链获取与弹幕刷新"],
.nav-item[data-title*="AI 辅助识别插件"],
.nav-item[data-title*="AI辅助识别插件"],
.nav-item[data-title*="Nullbr 搜索配置"],
.nav-item[data-title*="Nullbr搜索配置"],
.nav-item[data-title*="Emby 看板专用配置"],
.nav-item[data-title*="Emby看板专用配置"],
.config-group[data-title*="直链获取与弹幕刷新"],
.config-group[data-title*="AI 辅助识别插件"],
.config-group[data-title*="AI辅助识别插件"],
.config-group[data-title*="Nullbr 搜索配置"],
.config-group[data-title*="Nullbr搜索配置"],
.config-group[data-title*="Emby 看板专用配置"],
.config-group[data-title*="Emby看板专用配置"] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
}

/* ==========================================================================
   全新体验升级：输入框/提示词层级体系、万能转发与123分享卡片优化、Emby看板呼吸间隔
   ========================================================================== */

/* 1. 全局输入框与提示词 (Placeholder) 层级体系重构：彻底解决“框太窄、提示词同大且突兀” */
::placeholder,
.form-input::placeholder,
.kv-key-input::placeholder,
.kv-value-input::placeholder,
.kv-target-input::placeholder,
.kv-blacklist-input::placeholder,
.kv-note-input::placeholder,
.kv-command-head-input::placeholder,
.vl-input::placeholder {
    font-size: 0.82rem !important;
    font-weight: 400 !important;
    color: #94a3b8 !important;
    opacity: 0.85 !important;
    letter-spacing: 0.01em !important;
}
html[data-theme="dark"] ::placeholder,
html[data-theme="dark"] .form-input::placeholder,
html[data-theme="dark"] .kv-key-input::placeholder,
html[data-theme="dark"] .kv-value-input::placeholder,
html[data-theme="dark"] .kv-target-input::placeholder,
html[data-theme="dark"] .kv-blacklist-input::placeholder,
html[data-theme="dark"] .kv-note-input::placeholder,
html[data-theme="dark"] .kv-command-head-input::placeholder,
html[data-theme="dark"] .vl-input::placeholder {
    color: #64748b !important;
    opacity: 0.8 !important;
}

/* 全站通用与卡片内部输入框：微磨砂通透质感、舒适高度 42px，充裕内边距，温润圆角 10px，内描边与呼吸聚焦环 */
.form-input,
input[type="text"].form-input,
input[type="password"].form-input,
input[type="number"].form-input,
.kv-key-input,
.kv-value-input,
.kv-target-input,
.kv-blacklist-input,
.kv-note-input,
.kv-command-head-input,
.vl-input,
.transfer-status-select,
.transfer-result-input,
.organize-overwrite-rule-select-wrap select {
    height: 42px !important;
    min-height: 42px !important;
    padding: 8px 14px !important;
    border-radius: 10px !important;
    border: 1px solid rgba(203, 213, 225, 0.85) !important;
    background: rgba(255, 255, 255, 0.9) !important;
    color: var(--text-main) !important;
    font-size: 0.90rem !important;
    line-height: 1.45 !important;
    box-sizing: border-box !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03), inset 0 1px 1px rgba(0, 0, 0, 0.02) !important;
    transition: all 0.2s var(--ease-out) !important;
}

html[data-theme="dark"] .form-input,
html[data-theme="dark"] input[type="text"].form-input,
html[data-theme="dark"] input[type="password"].form-input,
html[data-theme="dark"] input[type="number"].form-input,
html[data-theme="dark"] .kv-key-input,
html[data-theme="dark"] .kv-value-input,
html[data-theme="dark"] .kv-target-input,
html[data-theme="dark"] .kv-blacklist-input,
html[data-theme="dark"] .kv-note-input,
html[data-theme="dark"] .kv-command-head-input,
html[data-theme="dark"] .vl-input,
html[data-theme="dark"] .transfer-status-select,
html[data-theme="dark"] .transfer-result-input,
html[data-theme="dark"] .organize-overwrite-rule-select-wrap select {
    background: rgba(15, 23, 42, 0.6) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    color: #f1f5f9 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), inset 0 1px 1px rgba(255, 255, 255, 0.03) !important;
}

.form-input:focus,
.kv-key-input:focus,
.kv-value-input:focus,
.kv-target-input:focus,
.kv-blacklist-input:focus,
.kv-note-input:focus,
.kv-command-head-input:focus,
.vl-input:focus,
.transfer-status-select:focus,
.transfer-result-input:focus,
.organize-overwrite-rule-select-wrap select:focus {
    background: #ffffff !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18), 0 2px 8px rgba(37, 99, 235, 0.08) !important;
    outline: none !important;
}

html[data-theme="dark"] .form-input:focus,
html[data-theme="dark"] .kv-key-input:focus,
html[data-theme="dark"] .kv-value-input:focus,
html[data-theme="dark"] .kv-target-input:focus,
html[data-theme="dark"] .kv-blacklist-input:focus,
html[data-theme="dark"] .kv-note-input:focus,
html[data-theme="dark"] .kv-command-head-input:focus,
html[data-theme="dark"] .vl-input:focus,
html[data-theme="dark"] .transfer-status-select:focus,
html[data-theme="dark"] .transfer-result-input:focus,
html[data-theme="dark"] .organize-overwrite-rule-select-wrap select:focus {
    background: rgba(18, 25, 41, 0.95) !important;
    border-color: #38bdf8 !important;
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.22), 0 4px 14px rgba(0, 0, 0, 0.4) !important;
}

/* 2. 万能转发卡片（.tg-transfer-card）：简约大气液态玻璃微透卡身、四周统一精致边框与柔和立体阴影 */
.tg-transfer-card-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
    background: transparent !important;
    border: none !important;
    padding: 4px 0 !important;
    box-shadow: none !important;
}
@media (max-width: 980px) {
    .tg-transfer-card-grid {
        grid-template-columns: 1fr !important;
    }
}
html[data-theme="dark"] .tg-transfer-card-grid {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.tg-transfer-card {
    position: relative !important;
    border-radius: 16px !important;
    padding: 22px !important;
    gap: 14px !important;
    background: rgba(255, 255, 255, 0.88) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border: 1px solid rgba(226, 232, 240, 0.9) !important;
    box-shadow: 0 1px 3px 0 rgba(15, 23, 42, 0.03), 0 8px 24px -4px rgba(15, 23, 42, 0.06), inset 0 1px 0 0 rgba(255, 255, 255, 0.9) !important;
    transition: all 0.22s var(--ease-out) !important;
}
.tg-transfer-card:hover {
    box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.04), 0 14px 32px -3px rgba(15, 23, 42, 0.09), inset 0 1px 0 0 rgba(255, 255, 255, 1) !important;
    border-color: rgba(203, 213, 225, 1) !important;
    transform: translateY(-2px) !important;
}
html[data-theme="dark"] .tg-transfer-card {
    background: rgba(24, 32, 52, 0.72) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    box-shadow: 0 6px 24px -2px rgba(0, 0, 0, 0.45), inset 0 1px 0 0 rgba(255, 255, 255, 0.08) !important;
}
html[data-theme="dark"] .tg-transfer-card:hover {
    border-color: rgba(255, 255, 255, 0.18) !important;
    box-shadow: 0 10px 32px -4px rgba(0, 0, 0, 0.6), inset 0 1px 0 0 rgba(255, 255, 255, 0.12) !important;
    transform: translateY(-2px) !important;
}
.tg-transfer-card-title {
    font-size: 0.86rem !important;
    font-weight: 700 !important;
    color: #2563eb !important;
    background: rgba(37, 99, 235, 0.08) !important;
    border: 1px solid rgba(37, 99, 235, 0.18) !important;
    padding: 3px 10px !important;
    border-radius: 8px !important;
    align-self: flex-start !important;
    display: inline-flex !important;
}
html[data-theme="dark"] .tg-transfer-card-title {
    color: #38bdf8 !important;
    background: rgba(56, 189, 248, 0.12) !important;
    border-color: rgba(56, 189, 248, 0.25) !important;
}
.tg-transfer-card .tg-transfer-option-row {
    background: rgba(248, 250, 252, 0.85) !important;
    border: 1px solid rgba(226, 232, 240, 0.8) !important;
    border-radius: 12px !important;
    padding: 10px 14px !important;
}
html[data-theme="dark"] .tg-transfer-card .tg-transfer-option-row {
    background: rgba(15, 23, 42, 0.5) !important;
    border-color: rgba(255, 255, 255, 0.07) !important;
}
.tg-transfer-card .form-input {
    background: rgba(255, 255, 255, 0.95) !important;
    border: 1px solid rgba(203, 213, 225, 0.8) !important;
    height: 42px !important;
    min-height: 42px !important;
}
html[data-theme="dark"] .tg-transfer-card .form-input {
    background: rgba(15, 23, 42, 0.65) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: #f1f5f9 !important;
}
.tg-transfer-card .form-input:focus {
    background: #ffffff !important;
    border-color: #2563eb !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16) !important;
}
html[data-theme="dark"] .tg-transfer-card .form-input:focus {
    background: #0f172a !important;
    border-color: #38bdf8 !important;
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.22) !important;
}

/* 测试转发操作按钮 */
.tg-transfer-card .tg-transfer-test-btn,
.transfer-test-btn {
    background: linear-gradient(180deg, #3b82f6 0%, #2563eb 100%) !important;
    border: 1px solid rgba(29, 78, 216, 0.35) !important;
    color: #ffffff !important;
    border-radius: 9px !important;
    padding: 7px 15px !important;
    font-size: 0.85rem !important;
    font-weight: 650 !important;
    letter-spacing: 0.01em !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 3px 10px -2px rgba(37, 99, 235, 0.35) !important;
    transition: all 0.2s var(--ease-out) !important;
    cursor: pointer !important;
}
.tg-transfer-card .tg-transfer-test-btn:hover,
.transfer-test-btn:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08), 0 5px 14px -2px rgba(37, 99, 235, 0.45) !important;
}
.tg-transfer-card .tg-transfer-test-btn:active,
.transfer-test-btn:active {
    transform: scale(0.96) !important;
}
html[data-theme="dark"] .tg-transfer-card .tg-transfer-test-btn,
html[data-theme="dark"] .transfer-test-btn {
    background: linear-gradient(180deg, #38bdf8 0%, #0284c7 100%) !important;
    border-color: rgba(56, 189, 248, 0.4) !important;
    color: #030712 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 3px 12px -2px rgba(56, 189, 248, 0.4) !important;
}

/* 3. 123 云盘分享监控卡片（.monitor-link-card）：自然通透背景、四周统一精致边框、460px 规整卡片不自适应占满 */
.monitor-link-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px !important;
    width: 100% !important;
    align-items: flex-start !important;
    background: transparent !important;
    border: none !important;
    padding: 4px 0 !important;
    box-shadow: none !important;
}
html[data-theme="dark"] .monitor-link-grid {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.monitor-link-card {
    position: relative !important;
    width: 460px !important;
    max-width: 100% !important;
    flex: 0 0 460px !important;
    box-sizing: border-box !important;
    border-radius: 16px !important;
    padding: 22px !important;
    gap: 14px !important;
    background: rgba(255, 255, 255, 0.88) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border: 1px solid rgba(226, 232, 240, 0.9) !important;
    box-shadow: 0 1px 3px 0 rgba(15, 23, 42, 0.03), 0 8px 24px -4px rgba(15, 23, 42, 0.06), inset 0 1px 0 0 rgba(255, 255, 255, 0.9) !important;
    transition: all 0.22s var(--ease-out) !important;
}
.monitor-link-card:hover {
    box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.04), 0 14px 32px -3px rgba(15, 23, 42, 0.09), inset 0 1px 0 0 rgba(255, 255, 255, 1) !important;
    border-color: rgba(203, 213, 225, 1) !important;
    transform: translateY(-2px) !important;
}
html[data-theme="dark"] .monitor-link-card {
    background: rgba(24, 32, 52, 0.72) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    box-shadow: 0 6px 24px -2px rgba(0, 0, 0, 0.45), inset 0 1px 0 0 rgba(255, 255, 255, 0.08) !important;
}
html[data-theme="dark"] .monitor-link-card:hover {
    border-color: rgba(255, 255, 255, 0.18) !important;
    box-shadow: 0 10px 32px -4px rgba(0, 0, 0, 0.6), inset 0 1px 0 0 rgba(255, 255, 255, 0.12) !important;
    transform: translateY(-2px) !important;
}
@media (max-width: 520px) {
    .monitor-link-card {
        width: 100% !important;
        flex: 1 1 100% !important;
    }
}
.monitor-link-card-title {
    font-size: 0.86rem !important;
    font-weight: 700 !important;
    color: #0284c7 !important;
    background: rgba(2, 132, 199, 0.08) !important;
    border: 1px solid rgba(2, 132, 199, 0.18) !important;
    padding: 3px 10px !important;
    border-radius: 8px !important;
    align-self: flex-start !important;
    display: inline-flex !important;
}
html[data-theme="dark"] .monitor-link-card-title {
    color: #38bdf8 !important;
    background: rgba(2, 132, 199, 0.15) !important;
    border-color: rgba(56, 189, 248, 0.25) !important;
}
.monitor-link-card .form-input {
    background: rgba(255, 255, 255, 0.95) !important;
    border: 1px solid rgba(203, 213, 225, 0.8) !important;
    height: 42px !important;
    min-height: 42px !important;
}
html[data-theme="dark"] .monitor-link-card .form-input {
    background: rgba(15, 23, 42, 0.65) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: #f1f5f9 !important;
}
.monitor-link-card .form-input:focus {
    background: #ffffff !important;
    border-color: #0284c7 !important;
    box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.16) !important;
}
html[data-theme="dark"] .monitor-link-card .form-input:focus {
    background: #0f172a !important;
    border-color: #38bdf8 !important;
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.22) !important;
}
.monitor-link-card .kv-delete-btn,
.kv-delete-btn {
    position: absolute !important;
    top: 18px !important;
    right: 18px !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 8px !important;
    border: 1px solid rgba(239, 68, 68, 0.22) !important;
    background: rgba(239, 68, 68, 0.08) !important;
    color: #dc2626 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 15px !important;
    cursor: pointer !important;
    transition: all 0.18s var(--ease-out) !important;
    padding: 0 !important;
}
.monitor-link-card .kv-delete-btn:hover,
.kv-delete-btn:hover {
    background: rgba(239, 68, 68, 0.16) !important;
    border-color: rgba(239, 68, 68, 0.4) !important;
    color: #b91c1c !important;
    transform: scale(1.08) !important;
}
.monitor-link-card .kv-delete-btn:active,
.kv-delete-btn:active {
    transform: scale(0.94) !important;
}
html[data-theme="dark"] .monitor-link-card .kv-delete-btn,
html[data-theme="dark"] .kv-delete-btn {
    background: rgba(239, 68, 68, 0.12) !important;
    border-color: rgba(248, 113, 113, 0.26) !important;
    color: #f87171 !important;
}
html[data-theme="dark"] .monitor-link-card .kv-delete-btn:hover,
html[data-theme="dark"] .kv-delete-btn:hover {
    background: rgba(239, 68, 68, 0.22) !important;
    border-color: rgba(248, 113, 113, 0.45) !important;
    color: #fca5a5 !important;
}
.monitor-link-grid ~ .kv-add-btn,
.key-value-wrapper .kv-add-btn {
    width: 460px !important;
    max-width: 100% !important;
    margin-top: 8px !important;
    box-sizing: border-box !important;
}
@media (max-width: 520px) {
    .monitor-link-grid ~ .kv-add-btn,
    .key-value-wrapper .kv-add-btn {
        width: 100% !important;
    }
}
.directory-selector-mini-input-wrap {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
    width: 100% !important;
}
.directory-selector-mini-btn {
    height: 42px !important;
    padding: 0 14px !important;
    border-radius: 11px !important;
    font-size: 0.84rem !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(37, 99, 235, 0.08) !important;
    border: 1px solid rgba(37, 99, 235, 0.2) !important;
    color: #2563eb !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    flex-shrink: 0 !important;
}
.directory-selector-mini-btn:hover {
    background: rgba(37, 99, 235, 0.15) !important;
    border-color: #2563eb !important;
    transform: translateY(-1px) !important;
}
html[data-theme="dark"] .directory-selector-mini-btn {
    background: rgba(56, 189, 248, 0.12) !important;
    border-color: rgba(56, 189, 248, 0.28) !important;
    color: #38bdf8 !important;
}
html[data-theme="dark"] .directory-selector-mini-btn:hover {
    background: rgba(56, 189, 248, 0.2) !important;
    border-color: #38bdf8 !important;
}
.kv-add-btn {
    margin-top: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 10px 20px !important;
    border-radius: 12px !important;
    border: 1.5px dashed rgba(37, 99, 235, 0.35) !important;
    background: rgba(37, 99, 235, 0.04) !important;
    color: #2563eb !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}
.kv-add-btn:hover {
    background: rgba(37, 99, 235, 0.1) !important;
    border-color: #2563eb !important;
    transform: translateY(-1px) !important;
}
html[data-theme="dark"] .kv-add-btn {
    border-color: rgba(56, 189, 248, 0.35) !important;
    background: rgba(56, 189, 248, 0.06) !important;
    color: #38bdf8 !important;
}
html[data-theme="dark"] .kv-add-btn:hover {
    background: rgba(56, 189, 248, 0.14) !important;
    border-color: #38bdf8 !important;
}

/* 4. Emby 看板页面（#emby-dashboard-section）组件间距与呼吸感重构 */
#emby-dashboard-section {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
}
.emby-dashboard-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
    width: 100% !important;
}
.emby-dashboard-head {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.5) 100%) !important;
    backdrop-filter: blur(20px) saturate(170%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(170%) !important;
    border: 1px solid rgba(255, 255, 255, 0.9) !important;
    border-radius: 20px !important;
    padding: 20px 24px !important;
    box-shadow: 0 10px 28px -4px rgba(15, 23, 42, 0.04), 0 1px 0 0 rgba(255, 255, 255, 1) inset !important;
}
html[data-theme="dark"] .emby-dashboard-head {
    background: linear-gradient(145deg, rgba(30, 41, 59, 0.55) 0%, rgba(15, 23, 42, 0.65) 100%) !important;
    backdrop-filter: blur(24px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 12px 32px -4px rgba(0, 0, 0, 0.45), 0 1px 0 0 rgba(255, 255, 255, 0.08) inset !important;
}
#emby-dashboard-main,
.emby-dashboard-main {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
}
.emby-metrics-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100% !important;
}
@media (max-width: 1300px) {
    .emby-metrics-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 768px) {
    .emby-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
.emby-metric-card {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.5) 100%) !important;
    backdrop-filter: blur(20px) saturate(170%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(170%) !important;
    border: 1px solid rgba(255, 255, 255, 0.9) !important;
    border-radius: 18px !important;
    padding: 18px 20px !important;
    box-shadow: 0 10px 28px -4px rgba(15, 23, 42, 0.04), 0 1px 0 0 rgba(255, 255, 255, 1) inset !important;
    transition: all 0.2s ease !important;
}
.emby-metric-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 14px 32px -4px rgba(15, 23, 42, 0.08), 0 1px 0 0 rgba(255, 255, 255, 1) inset !important;
}
html[data-theme="dark"] .emby-metric-card {
    background: linear-gradient(145deg, rgba(30, 41, 59, 0.55) 0%, rgba(15, 23, 42, 0.65) 100%) !important;
    backdrop-filter: blur(24px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 12px 32px -4px rgba(0, 0, 0, 0.45), 0 1px 0 0 rgba(255, 255, 255, 0.08) inset !important;
}
.emby-metric-label {
    font-size: 0.82rem !important;
    font-weight: 550 !important;
    color: #64748b !important;
}
html[data-theme="dark"] .emby-metric-label {
    color: #94a3b8 !important;
}
.emby-metric-value {
    font-size: 1.65rem !important;
    font-weight: 750 !important;
    color: #0f172a !important;
    letter-spacing: -0.02em !important;
    margin-top: 4px !important;
}
html[data-theme="dark"] .emby-metric-value {
    color: #f8fafc !important;
}
.emby-panel {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.5) 100%) !important;
    backdrop-filter: blur(20px) saturate(170%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(170%) !important;
    border: 1px solid rgba(255, 255, 255, 0.9) !important;
    border-radius: 20px !important;
    padding: 24px 28px !important;
    box-shadow: 0 10px 28px -4px rgba(15, 23, 42, 0.04), 0 1px 0 0 rgba(255, 255, 255, 1) inset !important;
}
html[data-theme="dark"] .emby-panel {
    background: linear-gradient(145deg, rgba(30, 41, 59, 0.55) 0%, rgba(15, 23, 42, 0.65) 100%) !important;
    backdrop-filter: blur(24px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 12px 32px -4px rgba(0, 0, 0, 0.45), 0 1px 0 0 rgba(255, 255, 255, 0.08) inset !important;
}
.emby-panel-title {
    font-size: 1.05rem !important;
    font-weight: 750 !important;
    color: #0f172a !important;
    letter-spacing: -0.01em !important;
    margin-bottom: 20px !important;
}
html[data-theme="dark"] .emby-panel-title {
    color: #f8fafc !important;
}
.emby-library-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
    gap: 16px !important;
}
.emby-two-cols {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
}
@media (max-width: 1024px) {
    .emby-two-cols {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   全局现代极简纤细滑动条（Scrollbar）设计规范
   ========================================================================== */
html,
body,
* {
    scrollbar-width: thin !important;
    scrollbar-color: rgba(148, 163, 184, 0.45) transparent !important;
}

html[data-theme="dark"],
html[data-theme="dark"] body,
html[data-theme="dark"] * {
    scrollbar-color: rgba(148, 163, 184, 0.3) transparent !important;
}

/* WebKit 浏览器纤细精致胶囊滑动条（主内容区与全站页面） */
::-webkit-scrollbar,
.content-area::-webkit-scrollbar,
.main-content::-webkit-scrollbar,
html::-webkit-scrollbar,
body::-webkit-scrollbar {
    width: 8px !important;
    height: 8px !important;
}

::-webkit-scrollbar-track,
.content-area::-webkit-scrollbar-track,
.main-content::-webkit-scrollbar-track,
html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
    background: transparent !important;
}

::-webkit-scrollbar-thumb,
.content-area::-webkit-scrollbar-thumb,
.main-content::-webkit-scrollbar-thumb,
html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
    background-color: rgba(148, 163, 184, 0.45) !important;
    border-radius: 999px !important;
    border: 2px solid transparent !important;
    background-clip: padding-box !important;
    transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

::-webkit-scrollbar-thumb:hover,
.content-area::-webkit-scrollbar-thumb:hover,
.main-content::-webkit-scrollbar-thumb:hover,
html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover {
    background-color: rgba(100, 116, 139, 0.75) !important;
}

::-webkit-scrollbar-thumb:active,
.content-area::-webkit-scrollbar-thumb:active,
.main-content::-webkit-scrollbar-thumb:active,
html::-webkit-scrollbar-thumb:active,
body::-webkit-scrollbar-thumb:active {
    background-color: rgba(71, 85, 105, 0.9) !important;
}

/* 深色模式滑动条 */
html[data-theme="dark"] ::-webkit-scrollbar-thumb,
html[data-theme="dark"] .content-area::-webkit-scrollbar-thumb,
html[data-theme="dark"] .main-content::-webkit-scrollbar-thumb,
html[data-theme="dark"] html::-webkit-scrollbar-thumb,
html[data-theme="dark"] body::-webkit-scrollbar-thumb {
    background-color: rgba(148, 163, 184, 0.3) !important;
    border: 2px solid transparent !important;
    background-clip: padding-box !important;
}

html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover,
html[data-theme="dark"] .content-area::-webkit-scrollbar-thumb:hover,
html[data-theme="dark"] .main-content::-webkit-scrollbar-thumb:hover,
html[data-theme="dark"] html::-webkit-scrollbar-thumb:hover,
html[data-theme="dark"] body::-webkit-scrollbar-thumb:hover {
    background-color: rgba(203, 213, 225, 0.55) !important;
}

html[data-theme="dark"] ::-webkit-scrollbar-thumb:active,
html[data-theme="dark"] .content-area::-webkit-scrollbar-thumb:active,
html[data-theme="dark"] .main-content::-webkit-scrollbar-thumb:active,
html[data-theme="dark"] html::-webkit-scrollbar-thumb:active,
html[data-theme="dark"] body::-webkit-scrollbar-thumb:active {
    background-color: rgba(226, 232, 240, 0.8) !important;
}

::-webkit-scrollbar-corner {
    background: transparent !important;
}

/* ==========================================================================
   左侧侧边栏导航滚动条隐藏规范（保持原生滚轮/触控平滑滚动，视觉完全无滚动条）
   ========================================================================== */
.sidebar,
.sidebar *,
#sidebar-nav,
#sidebar-nav *,
.sidebar-nav,
.sidebar-nav * {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.sidebar::-webkit-scrollbar,
.sidebar *::-webkit-scrollbar,
#sidebar-nav::-webkit-scrollbar,
#sidebar-nav *::-webkit-scrollbar,
.sidebar-nav::-webkit-scrollbar,
.sidebar-nav *::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    background: transparent !important;
}

/* ==========================================================================
   移动端悬浮 Dock 快捷导航栏（参考现代化 Rounded-Pill 毛玻璃高雅质感）
   ========================================================================== */
.mobile-dock-nav {
    display: none;
}

@media (max-width: 768px) {
    /*
       固定使用 Safari 原生的小视口单位，给浏览器工具栏和输入法预留稳定高度。
       不要在键盘弹出时重写容器高度，否则内部滚动区会被反复重排。
    */
    .app-container,
    .main-content {
        height: 100vh !important;
        height: 100svh !important;
    }

    /* Dock 已提升为 body 的直属层。移除应用壳的堆叠上下文，确保侧栏、遮罩和
       各类弹窗能按自身更高的 z-index 覆盖在 Dock 之上。 */
    .app-container {
        z-index: auto !important;
    }

    /* 侧栏及遮罩在移动端享有更高层级，底部避让全面屏指示条 */
    .sidebar {
        z-index: 1000 !important;
    }
    .overlay {
        z-index: 999 !important;
    }
    .sidebar-footer {
        padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 14px) !important;
    }

    /* 桌面端隐藏，移动端悬浮展示 */
    .mobile-dock-nav {
        display: flex !important;
        position: fixed !important;
        bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        z-index: 90 !important;
        width: min(calc(100vw - 28px), 360px) !important;
        pointer-events: none !important;
        transition: opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1), transform 0.22s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.22s !important;
    }

    /* Dock 在初始化时挂到 body 根节点，避免 iOS PWA 将 fixed 子节点错误地
       绑定到会随页面内容增高的 main-content；开菜单时由 JS 添加 is-hidden。 */
    .mobile-dock-nav.is-hidden {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translate(-50%, 20px) !important;
    }

    .mobile-dock-card {
        pointer-events: auto !important;
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 5px 8px !important;
        border-radius: 9999px !important;
        background: rgba(255, 255, 255, 0.88) !important;
        backdrop-filter: blur(24px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
        border: 1px solid rgba(226, 232, 240, 0.9) !important;
        box-shadow: 0 10px 28px -4px rgba(15, 23, 42, 0.12), 0 4px 12px -2px rgba(15, 23, 42, 0.08) !important;
    }

    html[data-theme="dark"] .mobile-dock-card {
        background: rgba(18, 24, 38, 0.86) !important;
        border-color: rgba(255, 255, 255, 0.12) !important;
        box-shadow: 0 12px 36px -4px rgba(0, 0, 0, 0.55), 0 4px 16px -2px rgba(0, 0, 0, 0.4) !important;
    }

    .mobile-dock-btn {
        flex: 1 1 0% !important;
        min-width: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        border: none !important;
        background: transparent !important;
        border-radius: 9999px !important;
        padding: 6px 2px !important;
        cursor: pointer !important;
        color: #64748b !important;
        transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
        user-select: none !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    html[data-theme="dark"] .mobile-dock-btn {
        color: #94a3b8 !important;
    }

    .mobile-dock-btn:active {
        transform: scale(0.92) !important;
    }

    .dock-btn-content {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 3px !important;
    }

    .dock-icon {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 24px !important;
        height: 24px !important;
        transition: transform 0.2s ease !important;
    }

    .dock-icon svg {
        width: 21px !important;
        height: 21px !important;
        stroke-width: 2.1 !important;
    }

    .dock-text {
        font-size: 11px !important;
        font-weight: 600 !important;
        line-height: 1 !important;
        letter-spacing: 0.02em !important;
    }

    /* 激活高亮态 (Active) */
    .mobile-dock-btn.is-active {
        color: #0284c7 !important;
        background: rgba(2, 132, 199, 0.12) !important;
    }

    html[data-theme="dark"] .mobile-dock-btn.is-active {
        color: #38bdf8 !important;
        background: rgba(56, 189, 248, 0.16) !important;
    }

    .mobile-dock-btn.is-active .dock-text {
        font-weight: 800 !important;
    }

    .mobile-dock-btn.is-active .dock-icon {
        transform: translateY(-1px) !important;
    }

    /*
       Dock 本体约 74px，高度之外再预留 38px，确保最后一项可完整滚到
       Dock 上方；同时保留安全区，避免主屏幕模式下被 Home 指示条遮住。
    */
    .content-area {
        padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 112px) !important;
        scroll-padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 112px) !important;
    }

    /* 除影视发现外，手机端页面统一收紧外层留白。 */
    .content-area.compact-mobile-page {
        padding-inline: 14px !important;
    }

    /* 网盘与其他功能的普通配置页再收紧一层卡片内边距。 */
    .content-area.compact-mobile-config-page #env-sections > .config-group.active {
        padding-inline: 16px !important;
    }

    /* ==========================================================================
       移动端专用排版自适应修复（告别文字竖排、按钮挤压、元素溢出）
       ========================================================================== */
    /* 1. Emby 看板操作区防挤压 */
    .emby-dashboard-actions {
        width: 100% !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        margin-top: 8px !important;
    }
    .emby-dashboard-actions .emby-config-btn,
    .emby-dashboard-actions .emby-refresh-btn,
    .emby-dashboard-actions select {
        white-space: nowrap !important;
        flex-shrink: 0 !important;
    }

    /* 2. 整理历史筛选栏：避免「状态筛选」「关键字」竖排折行 */
    .transfer-filters {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
    }
    .transfer-filter-item {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
    }
    .transfer-filter-label {
        white-space: nowrap !important;
        flex-shrink: 0 !important;
        min-width: 60px !important;
    }
    .transfer-status-select,
    .transfer-result-input {
        flex: 1 1 auto !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    .transfer-filter-item-keyword {
        margin-left: 0 !important;
    }

    /* 3. 影视探索搜索栏与工具栏按钮防止文字被压成两行竖排 */
    .md-library-toolbar-actions {
        flex-wrap: wrap !important;
        gap: 8px !important;
    }
    .md-library-toolbar-actions .md-btn,
    .md-library-inline-search .md-btn {
        white-space: nowrap !important;
        flex-shrink: 0 !important;
        padding-inline: 10px !important;
    }

    /* 4. 全局设置新手流程卡片网格自适应单列，杜绝屏幕右侧溢出 */
    .proxy-settings-guide-grid {
        grid-template-columns: 1fr !important;
    }

    /* 5. Emby 看板手机端专用布局：我的媒体库一行 2 个，最近入库和继续播放一行 3 个且海报精致紧凑 */
    .emby-library-grid,
    #emby-library-container.emby-library-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
    .emby-library-card {
        border-radius: 8px !important;
    }
    .emby-library-name {
        font-size: 0.78rem !important;
        padding: 6px 8px !important;
    }

    .emby-poster-grid,
    #emby-latest-container.emby-poster-grid,
    #emby-recent-container.emby-poster-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
    .emby-poster-card img {
        border-radius: 7px !important;
    }
    .emby-poster-title {
        margin-top: 4px !important;
        font-size: 0.72rem !important;
        line-height: 1.25 !important;
    }
    .emby-poster-meta {
        margin-top: 1px !important;
        font-size: 0.65rem !important;
        line-height: 1.2 !important;
    }

    /* 6. 移动端顶部栏与搜索/保存修改按钮自适应两行布局 */
    .top-bar {
        position: sticky !important;
        top: 0 !important;
        z-index: 50 !important;
        height: auto !important;
        min-height: 52px !important;
        padding: 8px 14px 10px 14px !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 0 !important;
        box-sizing: border-box !important;
    }

    /* 当处于不需要顶部操作栏的页面时，紧凑收缩为精致单行 (高度约 52px) */
    .top-bar.has-no-top-actions {
        min-height: 52px !important;
        padding: 8px 14px !important;
    }

    .menu-toggle {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 36px !important;
        height: 36px !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
        border-radius: var(--radius-s, 8px) !important;
    }

    .page-title {
        flex: 1 1 0% !important;
        min-width: 0 !important;
        margin: 0 0 0 10px !important;
        font-size: 1.12rem !important;
        font-weight: 700 !important;
        line-height: 36px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        order: 1 !important;
    }

    .top-bar-right {
        order: 2 !important;
        width: 100% !important;
        margin-top: 8px !important;
        margin-bottom: 0 !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        flex-wrap: nowrap !important;
        box-sizing: border-box !important;
    }

    .top-bar-right[style*="display: none"],
    .top-bar.has-no-top-actions .top-bar-right {
        display: none !important;
        margin-top: 0 !important;
    }

    .search-wrapper {
        flex: 1 1 0% !important;
        min-width: 0 !important;
        width: 100% !important;
        margin: 0 !important;
    }

    .search-input {
        width: 100% !important;
        max-width: 100% !important;
        height: 36px !important;
        padding: 0 10px 0 32px !important;
        font-size: 13px !important;
        box-sizing: border-box !important;
    }

    .search-input:focus {
        width: 100% !important;
        max-width: 100% !important;
    }

    .search-icon {
        left: 10px !important;
        width: 14px !important;
        height: 14px !important;
    }

    .save-btn {
        flex-shrink: 0 !important;
        height: 36px !important;
        padding: 0 12px !important;
        font-size: 13px !important;
        white-space: nowrap !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        box-sizing: border-box !important;
    }

    .save-btn .btn-svg-icon {
        width: 14px !important;
        height: 14px !important;
    }
}

/* 整理历史控件：暗色主题用低亮度彩色毛玻璃统一来源、筛选和批量操作。 */
html[data-theme="dark"] #organize-history-section .transfer-source-tab-btn {
    border-color: rgba(148, 163, 184, 0.2);
    background: rgba(148, 163, 184, 0.075);
    backdrop-filter: blur(12px) saturate(135%);
    -webkit-backdrop-filter: blur(12px) saturate(135%);
    color: #bfccdb;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

html[data-theme="dark"] #organize-history-section .transfer-source-tab-btn:hover:not(.active) {
    border-color: rgba(96, 165, 250, 0.34);
    background: rgba(59, 130, 246, 0.14);
    color: #dbeafe;
}

html[data-theme="dark"] #organize-history-section .transfer-source-tab-btn.active {
    border-color: rgba(96, 165, 250, 0.38);
    background: rgba(59, 130, 246, 0.21);
    color: #d2e6ff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 3px 10px rgba(30, 64, 175, 0.12);
}

html[data-theme="dark"] #organize-history-section .transfer-filter-label {
    color: #9eacbd;
}

html[data-theme="dark"] #organize-history-section .transfer-status-select,
html[data-theme="dark"] #organize-history-section .transfer-result-input {
    border-color: rgba(148, 163, 184, 0.22) !important;
    background: rgba(148, 163, 184, 0.085) !important;
    backdrop-filter: blur(12px) saturate(130%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(130%) !important;
    color: #e0e7ef !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045), 0 2px 6px rgba(0, 0, 0, 0.08) !important;
}

html[data-theme="dark"] #organize-history-section .transfer-status-select:focus,
html[data-theme="dark"] #organize-history-section .transfer-result-input:focus {
    border-color: rgba(96, 165, 250, 0.48) !important;
    background: rgba(30, 58, 86, 0.34) !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

html[data-theme="dark"] #organize-history-section #organize-status-filter option {
    background: #111827;
    color: #d0dae6;
}

html[data-theme="dark"] #organize-history-section #organize-batch-toolbar {
    border-color: rgba(148, 163, 184, 0.17);
    background: rgba(148, 163, 184, 0.055);
    backdrop-filter: blur(12px) saturate(125%);
    -webkit-backdrop-filter: blur(12px) saturate(125%);
}

html[data-theme="dark"] #organize-history-section #organize-batch-toolbar.is-selection-mode {
    border-color: rgba(129, 140, 248, 0.34);
    box-shadow: inset 0 0 0 1px rgba(129, 140, 248, 0.11), 0 0 16px rgba(79, 70, 229, 0.09);
}

html[data-theme="dark"] #organize-history-section .organize-history-actions-row .transfer-history-refresh-btn,
html[data-theme="dark"] #organize-history-section #organize-batch-toolbar .transfer-history-refresh-btn {
    border: 1px solid rgba(148, 163, 184, 0.21);
    border-radius: 9px;
    background: rgba(148, 163, 184, 0.085);
    backdrop-filter: blur(12px) saturate(135%);
    -webkit-backdrop-filter: blur(12px) saturate(135%);
    color: #d1dbe7;
    font-weight: 600;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.055), 0 2px 7px rgba(0, 0, 0, 0.14);
}

html[data-theme="dark"] #organize-history-section .organize-history-actions-row .transfer-history-refresh-btn:hover:not(:disabled),
html[data-theme="dark"] #organize-history-section #organize-batch-toolbar .transfer-history-refresh-btn:hover:not(:disabled) {
    border-color: rgba(148, 163, 184, 0.31);
    background: rgba(148, 163, 184, 0.13);
    color: #f1f5f9;
    transform: translateY(-1px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 4px 11px rgba(0, 0, 0, 0.18);
}

html[data-theme="dark"] #organize-history-section .organize-history-actions-row .transfer-history-refresh-btn:active:not(:disabled),
html[data-theme="dark"] #organize-history-section #organize-batch-toolbar .transfer-history-refresh-btn:active:not(:disabled) {
    transform: translateY(0) scale(0.98);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.18);
}

html[data-theme="dark"] #organize-history-section .organize-history-actions-row .transfer-history-refresh-btn:disabled,
html[data-theme="dark"] #organize-history-section #organize-batch-toolbar .transfer-history-refresh-btn:disabled {
    opacity: 0.48;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

html[data-theme="dark"] #organize-history-section #organize-run-now-btn,
html[data-theme="dark"] #organize-history-section #organize-batch-retag-btn {
    border-color: rgba(56, 189, 248, 0.31);
    background: rgba(56, 189, 248, 0.14);
    color: #b9e5f7;
}

html[data-theme="dark"] #organize-history-section #organize-run-now-btn:hover:not(:disabled),
html[data-theme="dark"] #organize-history-section #organize-batch-retag-btn:hover:not(:disabled) {
    border-color: rgba(56, 189, 248, 0.43);
    background: rgba(56, 189, 248, 0.2);
    color: #e0f2fe;
}

html[data-theme="dark"] #organize-history-section .transfer-history-recognize-btn {
    border-color: rgba(129, 140, 248, 0.3);
    background: rgba(129, 140, 248, 0.14);
    color: #cdd3fa;
}

html[data-theme="dark"] #organize-history-section .transfer-history-recognize-btn:hover:not(:disabled) {
    border-color: rgba(129, 140, 248, 0.42);
    background: rgba(129, 140, 248, 0.2);
    color: #eef0ff;
}

html[data-theme="dark"] #organize-history-section #organize-batch-select-mode-btn.is-active {
    border-color: rgba(129, 140, 248, 0.4);
    background: rgba(99, 102, 241, 0.22);
    color: #e0e2ff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 3px 10px rgba(79, 70, 229, 0.1);
}

html[data-theme="dark"] #organize-history-section .organize-history-actions-row .transfer-history-danger-btn,
html[data-theme="dark"] #organize-history-section #organize-batch-toolbar .transfer-history-danger-btn {
    border-color: rgba(248, 113, 113, 0.3);
    background: rgba(248, 113, 113, 0.13);
    color: #f0afb1;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045), 0 2px 7px rgba(0, 0, 0, 0.14);
}

html[data-theme="dark"] #organize-history-section .organize-history-actions-row .transfer-history-danger-btn:hover:not(:disabled),
html[data-theme="dark"] #organize-history-section #organize-batch-toolbar .transfer-history-danger-btn:hover:not(:disabled) {
    border-color: rgba(248, 113, 113, 0.42);
    background: rgba(248, 113, 113, 0.2);
    color: #ffd6d6;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 4px 11px rgba(0, 0, 0, 0.18);
}

html[data-theme="dark"] #organize-history-section .transfer-history-refresh-btn:focus-visible,
html[data-theme="dark"] #organize-history-section .transfer-source-tab-btn:focus-visible {
    outline: 2px solid rgba(96, 165, 250, 0.4);
    outline-offset: 2px;
}

html[data-theme="dark"] .organize-detail-modal .organize-detail-action-btn:not(.is-danger) {
    border-color: rgba(56, 189, 248, 0.31);
    background: rgba(56, 189, 248, 0.14);
    backdrop-filter: blur(12px) saturate(135%);
    -webkit-backdrop-filter: blur(12px) saturate(135%);
    color: #b9e5f7;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 3px 9px rgba(0, 0, 0, 0.18);
}

html[data-theme="dark"] .organize-detail-modal .organize-detail-action-btn:not(.is-danger):hover:not(:disabled) {
    border-color: rgba(56, 189, 248, 0.43);
    background: rgba(56, 189, 248, 0.2);
    color: #e0f2fe;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 5px 13px rgba(0, 0, 0, 0.22);
}

html[data-theme="dark"] .organize-detail-modal .organize-detail-action-btn:not(.is-danger):active:not(:disabled) {
    background: rgba(56, 189, 248, 0.17);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.18);
}

html[data-theme="dark"] .organize-detail-modal .organize-detail-action-btn:not(.is-danger):disabled {
    opacity: 0.48;
    box-shadow: none;
    filter: saturate(0.65);
}

/*
   iOS Safari 会在可编辑控件的计算字号小于 16px 时自动放大页面。
   此规则必须位于样式表末尾，覆盖后续主题/组件的紧凑字号；仅改变输入控件，
   不影响标签、说明文案与按钮的现有排版。
*/
@media (max-width: 768px) {
    html {
        /* 固定文本计算比例，避免 WebKit 在焦点/键盘切换时再次做自动文字放大。 */
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }

    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
    select,
    textarea {
        font-size: 16px !important;
    }
}

/* 输入法打开时不保留悬浮 Dock，避免它与 iOS 键盘、内部滚动容器争夺可视空间。 */
@media (max-width: 768px) {
    .mobile-dock-nav.mobile-input-active {
        /* 焦点期间直接移出渲染树，而不是只做透明/位移动画。Safari 仍会为
           保留在 fixed 合成层中的透明 Dock 分配键盘动画期间的合成成本。 */
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translate(-50%, 20px) !important;
        transition: none !important;
    }
}

/*
   常规配置页改为由 Safari 的文档根节点滚动。原先的“body 禁滚动 + 固定高度
   app + 内部 overflow:auto”在 iOS 键盘展开/收起时会同时发生可视视口调整、
   焦点滚动和合成层重建，表现为大片空白、输入掉帧，严重时 WebContent 被系统回收。
   日志查看器保留专用内部滚动；影视探索也使用根滚动，以避开键盘收起后的坐标错位。
*/
@media (max-width: 768px) {
    body.mobile-document-scroll {
        height: auto !important;
        min-height: 100svh !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        /* 键盘调整可视视口时，半透明渐变背景会迫使 WebKit 重画整屏。常规配置页
           使用等观感的纯色底，避免每个输入字符都参与大面积合成。 */
        background-image: none !important;
    }

    html:not([data-theme="dark"]) body.mobile-document-scroll {
        background-color: #f8fafc !important;
    }

    html[data-theme="dark"] body.mobile-document-scroll {
        background-color: #0b0f19 !important;
    }

    body.mobile-document-scroll .app-container,
    body.mobile-document-scroll .main-content {
        height: auto !important;
        min-height: 100svh !important;
        overflow: visible !important;
    }

    body.mobile-document-scroll .content-area {
        flex: 0 0 auto !important;
        min-height: calc(100svh - var(--mobile-top-bar-offset, 88px)) !important;
        overflow: visible !important;
        overscroll-behavior: auto !important;
        background: transparent !important;
    }

    body.mobile-document-scroll .top-bar {
        /* 所有手机页面统一保留常驻顶部的标题栏。这里仍是纯色、无模糊和无动画的
           轻量层，避免把此前 iOS 键盘期的高成本合成效果重新带回来。 */
        position: sticky !important;
        top: 0 !important;
        z-index: 50 !important;
        background: #ffffff !important;
        box-shadow: none !important;
        transition: none !important;
    }

    html[data-theme="dark"] body.mobile-document-scroll .top-bar {
        background: #121925 !important;
    }

    /* 侧栏在手机端关闭时隐藏其绘制；此前虽在屏外，仍有大量导航节点和阴影
       参与键盘期间的合成。打开菜单时再恢复即可，交互和内容不变。 */
    body.mobile-document-scroll .sidebar:not(.open),
    body.mobile-document-scroll .overlay:not(.active) {
        /* visibility:hidden 仍保留渲染对象；移动端关闭时直接 display:none，
           避免近五百个导航节点和遮罩模糊层参与输入法期间的样式/合成。 */
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body.mobile-document-scroll .sidebar.open {
        display: flex !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.mobile-document-scroll .overlay.active {
        display: block !important;
    }
}

/*
   backdrop-filter 在 iOS 键盘动画中代价很高，尤其是多层配置卡片叠加时。
   手机常规配置页保留原有色彩、边框和阴影，只去掉实时背景采样，降低 GPU/内存峰值。
*/
@media (max-width: 768px) {
    body.mobile-document-scroll .sidebar,
    body.mobile-document-scroll .top-bar,
    body.mobile-document-scroll .search-input,
    body.mobile-document-scroll .mobile-dock-card,
    body.mobile-document-scroll .config-group,
    body.mobile-document-scroll .config-group .config-subgroup,
    body.mobile-document-scroll .config-group .form-item,
    body.mobile-document-scroll .config-group .tg-transfer-card,
    body.mobile-document-scroll .config-group .monitor-link-card,
    body.mobile-document-scroll .config-group .proxy-settings-head,
    body.mobile-document-scroll .config-group .proxy-settings-guide,
    body.mobile-document-scroll .config-group .utility-ai-card,
    body.mobile-document-scroll .config-group .form-input,
    body.mobile-document-scroll .config-group .kv-key-input,
    body.mobile-document-scroll .config-group .kv-value-input,
    body.mobile-document-scroll .config-group .kv-target-input,
    body.mobile-document-scroll .config-group .kv-blacklist-input,
    body.mobile-document-scroll .config-group .kv-note-input,
    body.mobile-document-scroll .config-group .kv-command-head-input,
    body.mobile-document-scroll .config-group .vl-input,
    body.mobile-document-scroll .config-group .proxy-settings-input,
    body.mobile-document-scroll .config-group textarea,
    body.mobile-document-scroll .config-group select {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    /* 顶部搜索框同样是输入框；此前它不在配置卡片内，仍保留 blur(10px)。 */
    body.mobile-document-scroll .search-input {
        background: #ffffff !important;
        box-shadow: none !important;
        transition: none !important;
    }

    html[data-theme="dark"] body.mobile-document-scroll .search-input {
        background: #121925 !important;
    }
}

/*
   iOS Safari 在键盘期间会为 :focus 与 :focus-within 生成额外合成层。常规配置
   页面预先采用轻量焦点样式，避免焦点时修改父卡片的 class 或触发整张卡片重绘。
   只保留边框颜色，因此焦点仍清晰可见。
*/
@media (max-width: 768px) {
    /* 半透明卡片在 iOS 键盘动画中会叠成多层混合面。仅移动端的常规配置页改为
       接近原色的实底，避免 GPU 为输入法候选词反复重绘整块背景。 */
    html:not([data-theme="dark"]) body.mobile-document-scroll .config-group {
        background: #ffffff !important;
        box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05) !important;
    }

    html:not([data-theme="dark"]) body.mobile-document-scroll .config-group .config-subgroup,
    html:not([data-theme="dark"]) body.mobile-document-scroll .config-group .form-item {
        background: #ffffff !important;
    }

    html[data-theme="dark"] body.mobile-document-scroll .config-group {
        background: #121925 !important;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28) !important;
    }

    html[data-theme="dark"] body.mobile-document-scroll .config-group .config-subgroup,
    html[data-theme="dark"] body.mobile-document-scroll .config-group .form-item {
        background: #0f172a !important;
    }

    body.mobile-document-scroll .config-group,
    body.mobile-document-scroll .config-group .config-subgroup,
    body.mobile-document-scroll .config-group .form-item,
    body.mobile-document-scroll .config-group .key-value-card,
    body.mobile-document-scroll .config-group .value-list-card,
    body.mobile-document-scroll .config-group .emby-strm-path-mapping-row,
    body.mobile-document-scroll .config-group .tg-transfer-card,
    body.mobile-document-scroll .config-group .monitor-link-card,
    body.mobile-document-scroll .config-group .proxy-settings-head,
    body.mobile-document-scroll .config-group .proxy-settings-guide,
    body.mobile-document-scroll .config-group .utility-ai-card {
        animation: none !important;
        transition: none !important;
        box-shadow: none !important;
    }

    /*
       这几类编辑器的输入框会位于可增删/可排序的卡片中（发布组、地址映射、
       转发规则等）。即使输入框自身已关闭 transition，父列表仍可能保留 hover /
       focus-within 的背景过渡，WebKit 会在中文候选词和键盘视口变化时把它升级为
       整个卡片的合成重绘。移动端统一把这些父容器也固定为静态表面。
    */
    body.mobile-document-scroll .config-group .config-subgroup-stack,
    body.mobile-document-scroll .config-group .key-value-card-list,
    body.mobile-document-scroll .config-group .value-list-card-list,
    body.mobile-document-scroll .config-group .emby-strm-path-mapping-editor,
    body.mobile-document-scroll .config-group .emby-strm-path-mapping-list,
    body.mobile-document-scroll .config-group .emby-strm-path-mapping-row:focus-within,
    body.mobile-document-scroll .config-group .key-value-card:focus-within,
    body.mobile-document-scroll .config-group .value-list-card:focus-within,
    body.mobile-document-scroll .config-group .tg-transfer-card:focus-within,
    body.mobile-document-scroll .config-group .monitor-link-card:focus-within {
        transition: none !important;
        animation: none !important;
        box-shadow: none !important;
    }

    body.mobile-document-scroll .config-group .emby-strm-path-mapping-row:focus-within,
    body.mobile-document-scroll .config-group .key-value-card:focus-within,
    body.mobile-document-scroll .config-group .value-list-card:focus-within,
    body.mobile-document-scroll .config-group .tg-transfer-card:focus-within,
    body.mobile-document-scroll .config-group .monitor-link-card:focus-within {
        background: inherit !important;
    }

    body.mobile-document-scroll input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
    body.mobile-document-scroll textarea,
    body.mobile-document-scroll select {
        /* 同时覆盖失焦阶段：只在 :focus 中禁用 transition 会让收键盘时反向
           动画阴影和背景，正是用户看到“键盘收起后仍卡一会”的来源之一。 */
        transition: none !important;
        animation: none !important;
        box-shadow: none !important;
    }

    body.mobile-document-scroll input:focus:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
    body.mobile-document-scroll textarea:focus,
    body.mobile-document-scroll select:focus {
        border-color: var(--primary) !important;
        outline: 2px solid var(--primary-light) !important;
        outline-offset: -1px;
        box-shadow: none !important;
    }

    /* 实用工具弹窗也会包含地址、Token 等普通文本框。其毛玻璃与多层遮罩在键盘
       显示期间尤其耗内存，因此移动端采用无模糊的平面层，避免同类输入再次卡顿。 */
    body.mobile-document-scroll .utility-modal-overlay,
    body.mobile-document-scroll .utility-modal,
    body.mobile-document-scroll .utility-modal .utility-ai-card,
    body.mobile-document-scroll .utility-modal .utility-modal-card,
    body.mobile-document-scroll .utility-modal .utility-cover-section,
    body.mobile-document-scroll .utility-modal .utility-cover-action-card,
    body.mobile-document-scroll .utility-modal .form-input,
    body.mobile-document-scroll .utility-modal input,
    body.mobile-document-scroll .utility-modal textarea,
    body.mobile-document-scroll .utility-modal select {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        transition: none !important;
        animation: none !important;
        box-shadow: none !important;
    }

    html:not([data-theme="dark"]) body.mobile-document-scroll .utility-modal {
        background: #ffffff !important;
    }

    html[data-theme="dark"] body.mobile-document-scroll .utility-modal {
        background: #121925 !important;
    }
}

/*
   菜单打开时页面没有输入焦点，恢复侧栏本身的毛玻璃即可，不会重新引入键盘期的
   合成负担。此前通用的移动端降级规则也命中了 sidebar，留下了 0.82 的半透明底色
   却移除了模糊，视觉上就像一层过于透明的白纱。
*/
@media (max-width: 768px) {
    html:not([data-theme="dark"]) body.mobile-document-scroll .sidebar.open {
        background: rgba(248, 250, 252, 0.94) !important;
        backdrop-filter: blur(20px) saturate(160%) !important;
        -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
        box-shadow: 2px 0 22px rgba(15, 23, 42, 0.12) !important;
    }

    html[data-theme="dark"] body.mobile-document-scroll .sidebar.open {
        background: rgba(15, 23, 42, 0.92) !important;
        backdrop-filter: blur(24px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
        box-shadow: 2px 0 26px rgba(0, 0, 0, 0.38) !important;
    }

    /* Dock 在输入期间会直接 display:none；非输入状态可保留更有质感的磨砂层。 */
    html:not([data-theme="dark"]) body.mobile-document-scroll .mobile-dock-card {
        background: rgba(255, 255, 255, 0.94) !important;
        backdrop-filter: blur(24px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
        box-shadow: 0 10px 28px -4px rgba(15, 23, 42, 0.12), 0 4px 12px -2px rgba(15, 23, 42, 0.08) !important;
    }

    html[data-theme="dark"] body.mobile-document-scroll .mobile-dock-card {
        background: rgba(18, 24, 38, 0.93) !important;
        backdrop-filter: blur(24px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
        box-shadow: 0 12px 36px -4px rgba(0, 0, 0, 0.55), 0 4px 16px -2px rgba(0, 0, 0, 0.4) !important;
    }
}

/*
   影视探索也使用文档根滚动，规避 iOS 键盘与嵌套滚动区的坐标错位；但它不是普通
   配置卡片，不能继承移动端配置页的实底和阴影降级，否则会改变原有的沉浸式视觉。
*/
@media (max-width: 768px) {
    body.mobile-document-scroll .config-group.media-discovery-section {
        overflow: visible !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        transition: none !important;
        animation: none !important;
    }

    html:not([data-theme="dark"]) body.mobile-document-scroll .config-group.media-discovery-section,
    html[data-theme="dark"] body.mobile-document-scroll .config-group.media-discovery-section {
        background: transparent !important;
    }
}

/*
   iOS「添加到主屏幕」的独立运行模式。

   原先把刘海安全区加在 app-container 上：顶栏会先跟随文档滚动到顶部，状态栏
   露出 body 的另一种底色；侧栏则因可用高度被间接压缩，底部操作按钮可能落到屏幕外。
   这里让顶栏和侧栏各自绘制到安全区，内容区用 JS 同步的
   --mobile-top-bar-height 留出占位，避免任何页面首屏被遮挡。
*/
@media (max-width: 768px) {
    html.is-standalone-ios {
        background: #ffffff !important;
    }

    html.is-standalone-ios[data-theme="dark"] {
        background: #121925 !important;
    }

    /*
       主屏幕 PWA 不能复用普通 Safari 的“document 根滚动 + fixed Dock”结构。
       WebKit 在 standalone + viewport-fit=cover 下会同时错误计算根视口高度，并在
       根滚动后让 fixed 元素相对不同的高度定位；所以短页和长页会得到不同的 Dock
       位置。这里把 PWA 变成一个不滚动的 100vh 应用外壳，只让 content-area 滚动。
       Dock、顶栏和侧栏都相对这个外壳 absolute 定位，不再进入 WebKit 有问题的
       fixed/root-scroll 坐标链路。
    */
    html.is-standalone-ios,
    html.is-standalone-ios body {
        width: 100% !important;
        height: 100vh !important;
        min-height: 100vh !important;
        overflow: hidden !important;
    }

    html.is-standalone-ios body {
        position: fixed !important;
        top: 0 !important;
        right: auto !important;
        bottom: auto !important;
        left: 0 !important;
        width: 100vw !important;
        background-image: none !important;
    }

    html.is-standalone-ios body .app-container,
    html.is-standalone-ios body .main-content {
        height: 100vh !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    /* 普通页面恢复到单一的内部内容滚动区；日志页仍由自己的阅读器处理滚动。 */
    html.is-standalone-ios body .content-area:not(.log-viewer-active) {
        flex: 1 1 0% !important;
        min-height: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch;
    }

    html.is-standalone-ios body .content-area.log-viewer-active {
        flex: 1 1 0% !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    /* Dock 是 body 的直属节点；body 已固定为完整 PWA 外壳，absolute 的定位基准
       不会随着页面内容、键盘或 document 的滚动高度改变。 */
    html.is-standalone-ios body > .mobile-dock-nav {
        position: absolute !important;
        top: auto !important;
        right: auto !important;
        bottom: calc(constant(safe-area-inset-bottom) + 12px) !important;
        bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
        left: 50% !important;
    }

    html.is-standalone-ios body .app-container {
        padding: 0 !important;
    }

    html.is-standalone-ios body .main-content {
        padding-top: var(--mobile-top-bar-height, 52px) !important;
        box-sizing: border-box !important;
    }

    html.is-standalone-ios body .top-bar {
        /* main-content 是固定应用外壳的一部分，使用 absolute 而非 fixed，避免
           standalone WebKit 在内部触摸滚动时错误更新 fixed 图层的位置。 */
        position: absolute !important;
        inset: 0 0 auto 0 !important;
        width: 100% !important;
        z-index: 100 !important;
        /* 先兼容旧版 iOS，再使用当前的 env() 安全区变量。 */
        padding-top: calc(constant(safe-area-inset-top) + 8px) !important;
        padding-top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
        background: #ffffff !important;
        border-bottom-color: rgba(226, 232, 240, 0.9) !important;
        box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04) !important;
        transition: none !important;
    }

    html.is-standalone-ios[data-theme="dark"] body .top-bar {
        background: #121925 !important;
        border-bottom-color: rgba(255, 255, 255, 0.08) !important;
        box-shadow: 0 1px 0 rgba(255, 255, 255, 0.03) !important;
    }

    /* 侧栏本身铺满整个独立应用视口，品牌区从状态栏下方开始；导航区独立收缩并滚动，
       因此无论菜单有多长，主题和退出按钮都会固定留在可见底部。 */
    html.is-standalone-ios body .sidebar,
    html.is-standalone-ios body .overlay {
        position: absolute !important;
    }

    html.is-standalone-ios body .sidebar {
        top: 0 !important;
        bottom: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        padding-top: calc(constant(safe-area-inset-top) + 8px) !important;
        padding-top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
        box-sizing: border-box !important;
    }

    .sidebar #sidebar-nav {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }

    .sidebar .sidebar-footer {
        flex: 0 0 auto !important;
    }
}
