/**
 * TuOS UI 组件库样式
 * 与 js/core/tuos-ui.js 配套使用
 * 
 * 版本说明:
 * - 默认样式: 经典 TuOS 风格
 * - .tuos-v2: 新版实验性 UI (动态高斯模糊 + 毛玻璃按钮)
 */

/* ============ 按钮组件 ============ */
.tuos-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    border: none; border-radius: var(--radius-sm); font-family: inherit; font-weight: 500;
    cursor: pointer; transition: all var(--transition-fast); white-space: nowrap;
}
.tuos-btn-small { padding: 6px 12px; font-size: 12px; }
.tuos-btn-medium { padding: 8px 16px; font-size: 13px; }
.tuos-btn-large { padding: 12px 24px; font-size: 14px; }
.tuos-btn-primary { background: var(--accent); color: #ffffff !important; }
.tuos-btn-primary:hover:not(:disabled) { background: var(--accent-hover); }
/* 旧版 UI 确保 Primary 按钮文字为白色 */
body:not(.tuos-v2) .tuos-btn-primary { color: #ffffff !important; background-clip: padding-box !important; -webkit-background-clip: padding-box !important; }
body:not(.tuos-v2) .tuos-btn-primary .tuos-btn-text { color: #ffffff !important; }
.tuos-btn-secondary { background: var(--bg-tertiary); color: var(--text-primary); }
.tuos-btn-secondary:hover:not(:disabled) { background: rgba(0, 0, 0, 0.08); }
.dark-mode .tuos-btn-secondary:hover:not(:disabled) { background: rgba(255, 255, 255, 0.12); }
.tuos-btn-outline { background: transparent; border: 1px solid var(--border-color); color: var(--text-primary); }
.tuos-btn-outline:hover:not(:disabled) { background: rgba(0, 0, 0, 0.05); }
.tuos-btn-text { background: transparent; color: var(--accent); }
.tuos-btn-text:hover:not(:disabled) { background: rgba(var(--accent-rgb, 0, 120, 212), 0.1); }
.tuos-btn-danger { background: #d13438; color: white; }
.tuos-btn-danger:hover:not(:disabled) { background: #a4262c; }
.tuos-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.tuos-btn-icon { width: 16px; height: 16px; }
.tuos-btn-spinner { width: 16px; height: 16px; border: 2px solid currentColor; border-top-color: transparent; border-radius: 50%; animation: tuos-spin 0.8s linear infinite; }

/* 图标按钮 */
.tuos-icon-btn { display: inline-flex; align-items: center; justify-content: center; background: transparent; border: none; border-radius: var(--radius-sm); cursor: pointer; transition: background var(--transition-fast); }
.tuos-icon-btn-small { width: 28px; height: 28px; }
.tuos-icon-btn-small img { width: 14px; height: 14px; }
.tuos-icon-btn-medium { width: 32px; height: 32px; }
.tuos-icon-btn-medium img { width: 16px; height: 16px; }
.tuos-icon-btn-large { width: 40px; height: 40px; }
.tuos-icon-btn-large img { width: 20px; height: 20px; }
.tuos-icon-btn:hover:not(:disabled) { background: rgba(0, 0, 0, 0.05); }
.dark-mode .tuos-icon-btn:hover:not(:disabled) { background: rgba(255, 255, 255, 0.1); }
.tuos-icon-btn:disabled { opacity: 0.4; cursor: not-allowed; }

/* ============ 标签栏组件 ============ */
.tuos-tabbar { display: flex; align-items: center; gap: 4px; }
.tuos-tabbar-tabs { display: flex; gap: 2px; flex: 1; overflow-x: auto; scrollbar-width: none; }
.tuos-tabbar-tabs::-webkit-scrollbar { display: none; }
.tuos-tab { display: flex; align-items: center; gap: 8px; padding: 8px 12px; background: rgba(0, 0, 0, 0.05); border-radius: var(--radius-sm) var(--radius-sm) 0 0; min-width: 120px; max-width: 200px; cursor: pointer; transition: background var(--transition-fast); }
.dark-mode .tuos-tab { background: rgba(255, 255, 255, 0.05); }
.tuos-tab:hover { background: rgba(0, 0, 0, 0.08); }
.dark-mode .tuos-tab:hover { background: rgba(255, 255, 255, 0.08); }
.tuos-tab.active { background: var(--bg-primary); }
.tuos-tab-icon { width: 16px; height: 16px; flex-shrink: 0; }
.tuos-tab-label { flex: 1; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tuos-tab-close { width: 18px; height: 18px; border-radius: 4px; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; opacity: 0; transition: all var(--transition-fast); flex-shrink: 0; }
.tuos-tab-close img { width: 12px; height: 12px; }
.tuos-tab:hover .tuos-tab-close { opacity: 1; }
.tuos-tab-close:hover { background: rgba(0, 0, 0, 0.1); }
.tuos-tabbar-pills .tuos-tab { border-radius: var(--radius-md); background: transparent; }
.tuos-tabbar-pills .tuos-tab.active { background: var(--accent); color: white; }
.tuos-tabbar-pills .tuos-tab.active img { filter: brightness(0) invert(1); }
.tuos-tabbar-underline { border-bottom: 1px solid var(--border-color); }
.tuos-tabbar-underline .tuos-tab { background: transparent; border-radius: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.tuos-tabbar-underline .tuos-tab.active { border-bottom-color: var(--accent); color: var(--accent); }

/* ============ 导航栏/工具栏 ============ */
.tuos-navbar { display: flex; align-items: center; gap: 12px; padding: 8px 16px; background: var(--bg-tertiary); border-bottom: 1px solid var(--border-color); }
.tuos-navbar-left { display: flex; gap: 4px; }
.tuos-navbar-center { flex: 1; }
.tuos-navbar-right { display: flex; gap: 8px; }
.tuos-toolbar { display: flex; align-items: center; gap: 4px; padding: 8px 12px; }
.tuos-toolbar-left { justify-content: flex-start; }
.tuos-toolbar-center { justify-content: center; }
.tuos-toolbar-right { justify-content: flex-end; }
.tuos-toolbar-space-between { justify-content: space-between; }
.tuos-toolbar-divider { width: 1px; height: 20px; background: var(--border-color); margin: 0 8px; }
.tuos-toolbar-btn-labeled { width: auto !important; padding: 6px 12px !important; flex-direction: column; gap: 2px; }
.tuos-toolbar-label { font-size: 11px; color: var(--text-secondary); }

/* ============ 面包屑/分段控制 ============ */
.tuos-breadcrumb { display: flex; align-items: center; gap: 8px; flex: 1; }
.tuos-breadcrumb-item { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: var(--radius-sm); cursor: pointer; transition: background var(--transition-fast); font-size: 13px; }
.tuos-breadcrumb-item:hover { background: rgba(0, 0, 0, 0.05); }
.dark-mode .tuos-breadcrumb-item:hover { background: rgba(255, 255, 255, 0.1); }
.tuos-breadcrumb-icon { width: 14px; height: 14px; }
.tuos-breadcrumb-separator { color: var(--text-tertiary); font-size: 14px; }
.tuos-segmented { display: inline-flex; background: var(--bg-tertiary); border-radius: var(--radius-md); padding: 4px; position: relative; }
/* 选中态使用系统 UI 色：--accent-rgb / --accent-contrast 由 State.applyAccentColorSetting() 写入，
   与导航栏 .fw-nav-item.active 同一套配色，主题色变化、深浅色切换均自动跟随 */
.tuos-segmented-slider { position: absolute; top: 4px; left: 4px; height: calc(100% - 8px); background: rgba(var(--accent-rgb, 0, 120, 212), 0.55); border-radius: var(--radius-sm); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb, 0, 120, 212), 0.65); transition: transform var(--transition-normal), width var(--transition-normal), background var(--transition-fast); z-index: 0; }
.tuos-segmented-item { display: flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; position: relative; z-index: 1; transition: color var(--transition-fast); }
.tuos-segmented-small .tuos-segmented-item { padding: 6px 12px; font-size: 12px; }
.tuos-segmented-medium .tuos-segmented-item { padding: 8px 16px; font-size: 13px; }
.tuos-segmented-large .tuos-segmented-item { padding: 10px 20px; font-size: 14px; }
/* 选中文字用系统文字色而非 --accent-contrast：底色是半透明强调色，白字会看不清；
   --text-primary 随深浅色模式自动反转，浅色模式下为深色字，始终清晰 */
.tuos-segmented-item.active { color: var(--text-primary); font-weight: 600; }
.tuos-segmented-icon { width: 14px; height: 14px; }

/* ============ 输入框/搜索框 ============ */
.tuos-input-wrapper { display: flex; align-items: center; gap: 8px; background: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: 0 12px; transition: all var(--transition-fast); }
.tuos-input-wrapper:focus-within { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(var(--accent-rgb, 0, 120, 212), 0.2); }
.tuos-input-disabled { opacity: 0.5; pointer-events: none; }
.tuos-input-icon { width: 16px; height: 16px; opacity: 0.5; flex-shrink: 0; }
.tuos-input { flex: 1; border: none; background: transparent; padding: 10px 0; font-size: 14px; font-family: inherit; color: var(--text-primary); outline: none; min-width: 0; }
.tuos-input::placeholder { color: var(--text-tertiary); }
.tuos-input-clear { width: 20px; height: 20px; border: none; background: transparent; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; opacity: 0.5; transition: opacity var(--transition-fast); }
.tuos-input-clear:hover { opacity: 1; }
.tuos-input-clear img { width: 12px; height: 12px; }
.tuos-searchbox { border-radius: 20px; }

/* ============ 下拉选择 (自定义) ============ */
.tuos-select-wrapper { position: relative; display: inline-flex; min-width: 120px; z-index: 10; }

/* 触发器 (模拟按钮) */
.tuos-select-trigger {
    display: flex; align-items: center; justify-content: space-between; width: 100%;
    padding: 8px 12px; background: var(--bg-tertiary); border: 1px solid var(--border-color);
    border-radius: var(--radius-sm); cursor: pointer; transition: all var(--transition-fast);
    font-size: 14px; color: var(--text-primary); user-select: none;
}
.tuos-select-trigger:hover { background: rgba(0, 0, 0, 0.05); }
.dark-mode .tuos-select-trigger:hover { background: rgba(255, 255, 255, 0.1); }
.tuos-select-wrapper.active .tuos-select-trigger { border-color: var(--accent); }

.tuos-select-value { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-right: 8px; }
.tuos-select-arrow { width: 12px; height: 12px; opacity: 0.5; transition: transform var(--transition-fast); }
.tuos-select-wrapper.active .tuos-select-arrow { transform: rotate(180deg); }

/* 下拉菜单 (挂载到 body，使用 fixed 定位) */
.tuos-select-dropdown {
    position: fixed;
    background: var(--bg-secondary); backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid var(--border-color); border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg); padding: 4px; z-index: 10001;
    max-height: 300px; overflow-y: auto;
    /* 关闭状态 - 向上收起 */
    opacity: 0; 
    transform: translateY(-8px);
    pointer-events: none;
    visibility: hidden;
    transition: opacity 0.2s ease-out, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0.2s;
}
.tuos-select-dropdown.open {
    /* 展开状态 - 向下淡出 */
    opacity: 1; 
    transform: translateY(0);
    pointer-events: auto;
    visibility: visible;
    transition: opacity 0.25s ease-out, transform 0.25s cubic-bezier(0.1, 0.9, 0.2, 1), visibility 0s 0s;
}

/* 选项 */
.tuos-select-option {
    padding: 8px 12px; border-radius: var(--radius-sm); cursor: pointer;
    font-size: 14px; color: var(--text-primary); transition: background var(--transition-fast);
}
.tuos-select-option:hover { background: rgba(0, 0, 0, 0.05); }
.dark-mode .tuos-select-option:hover { background: rgba(255, 255, 255, 0.1); }
.tuos-select-option.selected { background: var(--accent); color: white; }
.tuos-select-option.disabled { opacity: 0.5; cursor: not-allowed; }

.tuos-select-disabled { opacity: 0.5; pointer-events: none; }

.tuos-select-dropdown,
.tuos-modal-content {
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
}

.tuos-select-dropdown::-webkit-scrollbar,
.tuos-modal-content::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

.tuos-select-dropdown::-webkit-scrollbar-track,
.tuos-modal-content::-webkit-scrollbar-track {
    background: transparent;
}

.tuos-select-dropdown::-webkit-scrollbar-thumb,
.tuos-modal-content::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 6px;
    border: 1px solid transparent;
    background-clip: padding-box;
    transition: background-color 180ms ease;
}

.tuos-select-dropdown.tuos-scrollbar-active::-webkit-scrollbar-thumb,
.tuos-modal-content.tuos-scrollbar-active::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.25);
}

.dark-mode .tuos-select-dropdown.tuos-scrollbar-active::-webkit-scrollbar-thumb,
.dark-mode .tuos-modal-content.tuos-scrollbar-active::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.3);
}

.tuos-select-dropdown.tuos-scrollbar-active::-webkit-scrollbar-thumb:hover,
.tuos-modal-content.tuos-scrollbar-active::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.4);
}

.dark-mode .tuos-select-dropdown.tuos-scrollbar-active::-webkit-scrollbar-thumb:hover,
.dark-mode .tuos-modal-content.tuos-scrollbar-active::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.45);
}

.tuos-select-dropdown.tuos-scrollbar-active,
.tuos-modal-content.tuos-scrollbar-active {
    scrollbar-color: rgba(0, 0, 0, 0.35) transparent;
}

.dark-mode .tuos-select-dropdown.tuos-scrollbar-active,
.dark-mode .tuos-modal-content.tuos-scrollbar-active {
    scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
}

/* ============ 自渲染滚动容器 ============ */
.tuos-scroll-area {
    position: relative;
    width: 100%;
    min-height: 0;
}

.tuos-scroll-viewport {
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    padding-right: 12px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.tuos-scroll-viewport::-webkit-scrollbar {
    width: 0;
    height: 0;
}

.tuos-scroll-rail {
    position: absolute;
    top: 2px;
    right: 2px;
    bottom: 2px;
    width: 8px;
    border-radius: 999px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 160ms ease;
}

.tuos-scroll-thumb {
    position: absolute;
    top: 0;
    left: 1px;
    width: 6px;
    min-height: 24px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.24);
    transition: background 150ms ease, opacity 150ms ease;
    cursor: pointer;
}

.dark-mode .tuos-scroll-thumb {
    background: rgba(255, 255, 255, 0.28);
}

.tuos-scroll-area:hover .tuos-scroll-rail,
.tuos-scroll-area.scrolling .tuos-scroll-rail,
.tuos-scroll-area.dragging .tuos-scroll-rail,
.tuos-scroll-area.tuos-scroll-always-visible .tuos-scroll-rail {
    opacity: 1;
    pointer-events: auto;
}

.tuos-scroll-area:hover .tuos-scroll-thumb {
    background: rgba(0, 0, 0, 0.34);
}

.dark-mode .tuos-scroll-area:hover .tuos-scroll-thumb {
    background: rgba(255, 255, 255, 0.38);
}

.tuos-scroll-area.dragging .tuos-scroll-thumb {
    background: rgba(var(--accent-rgb, 0, 120, 212), 0.62);
}

.tuos-scroll-area.no-scroll .tuos-scroll-rail {
    opacity: 0 !important;
    pointer-events: none !important;
}

/* ============ 开关/滑块 ============ */
.tuos-toggle-wrapper { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.tuos-toggle-disabled { opacity: 0.5; pointer-events: none; }
.tuos-toggle {
    width: 44px;
    height: 24px;
    flex: 0 0 44px;
    overflow: visible;
    outline: none;
}
.tuos-toggle-track {
    position: relative;
    width: 44px;
    height: 24px;
    overflow: visible;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(180, 180, 180, 0.4), rgba(160, 160, 160, 0.3));
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1), 0 2px 8px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(var(--v2-blur, 40px)) saturate(150%);
    -webkit-backdrop-filter: blur(var(--v2-blur, 40px)) saturate(150%);
    transition: background 300ms ease, border-color 300ms ease, box-shadow 300ms ease;
}
.tuos-toggle-thumb {
    position: absolute;
    top: -3px;
    left: -1px;
    width: 28px;
    height: 28px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.75);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    transform: none !important;
    transition: left 400ms cubic-bezier(0.4, 0, 0.2, 1), background 300ms ease, border-color 300ms ease;
}
.tuos-toggle-thumb::before { display: none; }
.tuos-toggle.active .tuos-toggle-track {
    border-color: rgba(var(--accent-rgb, 0, 120, 212), 0.5);
    background: linear-gradient(180deg, rgba(var(--accent-rgb, 0, 120, 212), 0.62), rgba(var(--accent-rgb, 0, 120, 212), 0.46));
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1), 0 0 16px rgba(var(--accent-rgb, 0, 120, 212), 0.3);
}
.tuos-toggle.active .tuos-toggle-thumb {
    left: 17px;
    border-color: rgba(255, 255, 255, 0.5);
    background: rgba(255, 255, 255, 0.8);
}
.tuos-toggle:focus-visible .tuos-toggle-track {
    outline: 2px solid rgba(var(--accent-rgb, 0, 120, 212), 0.65);
    outline-offset: 3px;
}
.tuos-toggle-label { font-size: 14px; color: var(--text-primary); }
.tuos-slider-wrapper { display: flex; align-items: center; gap: 8px; }
.tuos-slider-disabled { opacity: 0.5; pointer-events: none; }
.tuos-slider {
    -webkit-appearance: none;
    appearance: none;
    flex: 1;
    min-width: 80px;
    height: 18px;
    margin: 0;
    background: transparent;
    border-radius: 999px;
    outline: none;
    cursor: pointer;
    --tuos-slider-progress: 50%;
    --tuos-slider-track: rgba(0, 0, 0, 0.16);
}
.dark-mode .tuos-slider { --tuos-slider-track: rgba(255, 255, 255, 0.24); }
.tuos-slider::-webkit-slider-runnable-track {
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(to right,
        var(--accent) 0%,
        var(--accent) var(--tuos-slider-progress, 50%),
        var(--tuos-slider-track) var(--tuos-slider-progress, 50%),
        var(--tuos-slider-track) 100%);
}
.tuos-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    margin-top: -6px;
    background: var(--accent);
    border: 2px solid #fff;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
}
.tuos-slider::-moz-range-track {
    height: 4px;
    border-radius: 999px;
    background: var(--tuos-slider-track);
}
.tuos-slider::-moz-range-progress {
    height: 4px;
    border-radius: 999px;
    background: var(--accent);
}
.tuos-slider::-moz-range-thumb {
    width: 16px;
    height: 16px;
    background: var(--accent);
    border: 2px solid #fff;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
}
.tuos-slider-value { min-width: 32px; text-align: right; font-size: 13px; color: var(--text-secondary); white-space: nowrap; flex-shrink: 0; }

/* ============ 右键菜单 ============ */
.tuos-context-menu { position: fixed; min-width: min(180px, 100vw); border: 1px solid var(--border-color); border-radius: var(--radius-md); box-shadow: var(--shadow-lg); z-index: 10000; background: transparent; }
/* 磨砂玻璃层独立为兄弟层：子菜单不再是“已被磨砂的容器”的后代，其 backdrop-filter 能直接采到壁纸，与一级菜单材质一致 */
.tuos-context-menu-bg { position: absolute; inset: 0; border-radius: inherit; background: var(--bg-secondary); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); pointer-events: none; }
.tuos-context-menu-body { position: relative; z-index: 1; padding: 6px; max-height: calc(100dvh - 80px); overflow-y: auto; }
/* 含二级菜单时关闭内部裁剪，否则绝对定位的子菜单会被裁掉（与一级菜单 .has-sub 同语义） */
.tuos-context-menu-body.has-sub { overflow: visible; }
.blur-disabled .tuos-context-menu-bg { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--bg-primary); }
.tuos-context-menu.hidden { display: none; }
.tuos-context-menu-item { display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: var(--radius-sm); cursor: pointer; font-size: 13px; transition: background var(--transition-fast); }
.tuos-context-menu-item:hover { background: rgba(0, 0, 0, 0.05); }
.dark-mode .tuos-context-menu-item:hover { background: rgba(255, 255, 255, 0.1); }
.tuos-context-menu-item.disabled { opacity: 0.5; pointer-events: none; }
.tuos-context-menu-item img { width: 16px; height: 16px; }
/* 勾选项（如小组件开关）的对勾占位，与图标同尺寸对齐 */
.tuos-context-menu-check { width: 16px; height: 16px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; line-height: 1; opacity: 0.75; }
/* 危险项（如删除）：红色 */
.tuos-context-menu-item.danger { color: #e81123; }
.tuos-context-menu-item.danger:hover { background: rgba(232, 17, 35, 0.08); }
.dark-mode .tuos-context-menu-item.danger:hover { background: rgba(232, 17, 35, 0.16); }
.tuos-context-menu-separator { height: 1px; background: var(--border-color); margin: 6px 0; }

/* ============ 右键菜单二级子菜单（打开方式） ============ */
.tuos-context-menu-item.has-submenu { position: relative; padding-right: 26px; }

.tuos-context-menu-sub-arrow {
    position: absolute;
    right: 10px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-50%) rotate(-45deg);
    opacity: 0.55;
}

.tuos-context-menu-sub {
    display: none;
    position: absolute;
    left: 100%;
    top: -6px;
    min-width: min(180px, 100vw);
    max-height: 70vh;
    overflow-y: auto;
    background: var(--bg-secondary);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 8px;
    box-shadow: var(--shadow-xl);
    z-index: 10001;
}

/* 子菜单自身带 backdrop-filter，且因主菜单磨砂层已剥离为独立兄弟层（.tuos-context-menu-bg），
   子菜单不再是“已被磨砂祖先”的后代，其模糊直接采到壁纸，与一级菜单材质一致。
   blur-disabled 时与主菜单同为实色、关闭模糊。 */
.blur-disabled .tuos-context-menu-sub { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--bg-primary); }

.tuos-context-menu-item.has-submenu:hover > .tuos-context-menu-sub { display: block; }

/* 触屏无 hover：点击/触摸父项切换 .open 展开二级（与 :hover 并列，桌面触屏都可用） */
.tuos-context-menu-item.has-submenu.open > .tuos-context-menu-sub { display: block; }

.tuos-context-menu-sub.sub-left { left: auto; right: 100%; }

/* 子菜单放不下时向上展开 */
.tuos-context-menu-sub.sub-up { top: auto; bottom: -6px; }

.tuos-context-menu-sub .tuos-context-menu-item { padding: 8px 12px; white-space: nowrap; }
.tuos-context-menu-sub .tuos-context-menu-item:hover { background: rgba(0, 0, 0, 0.05); }
.dark-mode .tuos-context-menu-sub .tuos-context-menu-item:hover { background: rgba(255, 255, 255, 0.1); }

.tuos-context-menu-sub-tag { margin-left: auto; font-style: normal; font-size: 11px; opacity: 0.5; }

/* ============ 模态对话框 ============ */
.tuos-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.4); display: flex; align-items: center; justify-content: center; z-index: 10000; animation: tuos-fade-in 0.2s ease-out; }
.tuos-modal-overlay.closing { animation: tuos-fade-out 0.2s ease-out forwards; }
.tuos-modal { background: var(--bg-primary); border-radius: var(--radius-lg); box-shadow: var(--shadow-xl); max-width: 90vw; max-height: 80vh; display: flex; flex-direction: column; animation: tuos-scale-in 0.2s ease-out; }
.tuos-modal-overlay.closing .tuos-modal { animation: tuos-scale-out 0.2s ease-out forwards; }
.tuos-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--border-color); }
.tuos-modal-title { font-size: 16px; font-weight: 600; }
.tuos-modal-close { width: 32px; height: 32px; border: none; background: transparent; border-radius: var(--radius-sm); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background var(--transition-fast); }
.tuos-modal-close:hover { background: rgba(0, 0, 0, 0.05); }
.dark-mode .tuos-modal-close:hover { background: rgba(255, 255, 255, 0.1); }
.tuos-modal-close img { width: 16px; height: 16px; }
.tuos-modal-content { padding: 20px; overflow-y: auto; flex: 1; }
.tuos-modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 16px 20px; border-top: 1px solid var(--border-color); }

/* 添加快捷方式对话框：强制实底不透明 + 规整表单布局（覆盖 V2 毛玻璃） */
.tuos-modal-overlay.tuos-shortcut-modal .tuos-modal {
    background: var(--bg-primary) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-xl) !important;
}
.tuos-modal-overlay.tuos-shortcut-modal .tuos-input-wrapper {
    background: var(--bg-primary) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid var(--border-color) !important;
    border-radius: var(--radius-sm) !important;
    overflow: visible !important;
    min-height: 44px;
    padding: 0 14px;
}
.tuos-modal-overlay.tuos-shortcut-modal .tuos-input-wrapper::before { display: none !important; }
.tuos-shortcut-form { display: flex; flex-direction: column; gap: 22px; }
.tuos-field { display: flex; flex-direction: column; gap: 10px; }
.tuos-field-label { font-size: 13px; font-weight: 600; color: var(--text-primary); letter-spacing: 0.3px; }
.tuos-field-error { color: #e5484d; font-size: 12px; min-height: 16px; line-height: 16px; margin-top: 2px; }
.tuos-field-status { font-size: 12px; min-height: 16px; line-height: 16px; margin-top: 2px; }

/* 「打开方式」二选一：复用 tuos-ui.css 的 .tuos-segmented 分段控件（系统 UI 色 + 滑动指示块，
   与设置页排列选择器同一套）。这里仅做满宽拉伸，让两个选项等宽对齐，与上方整行输入框视觉一致 */
.tuos-segmented-fluid { width: 100%; }
.tuos-segmented-fluid .tuos-segmented-item { flex: 1; }

/* 对话框底部按钮：覆盖 V2 渐变文字/玻璃药丸，改用实底实色、放大、加粗，确保清晰可读 */
.tuos-modal-overlay.tuos-shortcut-modal .tuos-modal-footer { padding: 18px 20px; gap: 12px; }
.tuos-modal-overlay.tuos-shortcut-modal .tuos-btn {
    position: relative;
    min-height: 42px;
    padding: 0 26px;
    font-size: 14px;
    font-weight: 600;
    border-radius: var(--radius-sm) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
    background-image: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    overflow: visible !important;
    transform: none !important;
}
.tuos-modal-overlay.tuos-shortcut-modal .tuos-btn::before,
.tuos-modal-overlay.tuos-shortcut-modal .tuos-btn::after { display: none !important; }
.tuos-modal-overlay.tuos-shortcut-modal .tuos-btn-primary {
    background: var(--accent) !important;
    border-color: var(--accent) !important;
    color: #ffffff !important;
}
.tuos-modal-overlay.tuos-shortcut-modal .tuos-btn-primary:hover:not(:disabled) { background: var(--accent-hover) !important; }
.tuos-modal-overlay.tuos-shortcut-modal .tuos-btn-secondary {
    background: var(--bg-primary) !important;
    color: var(--text-primary) !important;
}
.tuos-modal-overlay.tuos-shortcut-modal .tuos-btn-secondary:hover:not(:disabled) { background: rgba(0, 0, 0, 0.08) !important; }
body.tuos-v2.dark-mode .tuos-modal-overlay.tuos-shortcut-modal .tuos-btn-secondary:hover:not(:disabled) { background: rgba(255, 255, 255, 0.12) !important; }

/* ============ 卡片/列表/进度/空状态/加载 ============ */
.tuos-card { background: var(--bg-tertiary); border-radius: var(--radius-md); overflow: hidden; }
.tuos-card-hoverable { transition: box-shadow var(--transition-fast), transform var(--transition-fast); cursor: pointer; }
.tuos-card-hoverable:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.tuos-card-header { padding: 16px; border-bottom: 1px solid var(--border-color); }
.tuos-card-title { font-size: 16px; font-weight: 600; }
.tuos-card-body { padding: 16px; }
.tuos-card-footer { padding: 12px 16px; border-top: 1px solid var(--border-color); background: rgba(0, 0, 0, 0.02); }
.dark-mode .tuos-card-footer { background: rgba(255, 255, 255, 0.02); }
.tuos-list { display: flex; flex-direction: column; gap: 2px; }
.tuos-list-item { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: var(--radius-sm); transition: background var(--transition-fast); }
.tuos-list-selectable .tuos-list-item { cursor: pointer; }
.tuos-list-selectable .tuos-list-item:hover { background: rgba(0, 0, 0, 0.05); }
.dark-mode .tuos-list-selectable .tuos-list-item:hover { background: rgba(255, 255, 255, 0.1); }
.tuos-list-item.active { background: var(--accent); color: white; }
.tuos-list-item.active img { filter: brightness(0) invert(1); }
.tuos-list-item-icon { width: 20px; height: 20px; flex-shrink: 0; }
.tuos-list-item-content { flex: 1; min-width: 0; }
.tuos-list-item-title { font-size: 14px; font-weight: 500; }
.tuos-list-item-desc { font-size: 12px; color: var(--text-secondary); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tuos-list-item.active .tuos-list-item-desc { color: rgba(255, 255, 255, 0.8); }
.tuos-list-item-extra { font-size: 12px; color: var(--text-tertiary); }
.tuos-progress { display: flex; align-items: center; gap: 12px; }
.tuos-progress-track { flex: 1; height: 6px; background: var(--bg-tertiary); border-radius: 3px; overflow: hidden; }
.tuos-progress-bar { height: 100%; background: var(--accent); border-radius: 3px; transition: width var(--transition-normal); }
.tuos-progress-success .tuos-progress-bar { background: #107c10; }
.tuos-progress-warning .tuos-progress-bar { background: #ffb900; }
.tuos-progress-error .tuos-progress-bar { background: #d13438; }
.tuos-progress-label { font-size: 12px; color: var(--text-secondary); min-width: 40px; text-align: right; }
.tuos-spinner { border: 3px solid var(--border-color); border-top-color: var(--accent); border-radius: 50%; animation: tuos-spin 0.8s linear infinite; }
.tuos-spinner-small { width: 16px; height: 16px; border-width: 2px; }
.tuos-spinner-medium { width: 24px; height: 24px; border-width: 3px; }
.tuos-spinner-large { width: 40px; height: 40px; border-width: 4px; }
.tuos-setting-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; column-gap: 16px; row-gap: 10px; padding: 16px; background: var(--bg-tertiary); border-radius: var(--radius-md); margin-bottom: 8px; }
.tuos-setting-item-info { flex: 1 1 40%; min-width: 150px; margin-right: 0; }
.tuos-setting-item-label { font-size: 14px; font-weight: 500; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tuos-setting-item-desc { font-size: 12px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tuos-setting-item-control { flex-shrink: 0; margin-left: auto; }

/* ============ 桌面分页管理（设置） ============ */
.tuos-pages-manager { display: flex; flex-direction: column; gap: 10px; min-width: 260px; }
.tuos-pages-list { display: flex; flex-direction: column; gap: 6px; }
/* 每页一行：卡片式底 + 边框，与 App Shop 分类管理面板同构（bg-secondary + border-color） */
.tuos-pages-row {
    display: flex; align-items: center; gap: 8px;
    padding: 7px 10px;
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-fast);
}
.tuos-pages-row:focus-within { border-color: var(--accent); }
.tuos-pages-row .tuos-input { flex: 1; min-width: 0; }
.tuos-pages-index { flex-shrink: 0; min-width: 52px; font-size: 13px; color: var(--text-secondary); }
.tuos-pages-footer { display: flex; align-items: center; }
/* 通栏虚线添加卡片：accent 色 + 虚线边框，与 .tag-form-btn-dashed / App Shop"管理分类"同语言 */
.tuos-pages-add {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    width: 100%; padding: 8px 0;
    border: 1px dashed var(--border-color); border-radius: var(--radius-md);
    background: transparent; color: var(--accent);
    font-size: 12px; cursor: pointer; user-select: none;
    transition: all var(--transition-fast);
}
.tuos-pages-add:hover { border-color: var(--accent); background: rgba(var(--accent-rgb, 0, 120, 212), 0.06); }
.tuos-pages-add:focus-visible { outline: none; box-shadow: 0 0 0 2px rgba(var(--accent-rgb, 0, 120, 212), 0.35); }
.tuos-pages-add svg { width: 12px; height: 12px; flex-shrink: 0; }
.tuos-pages-limit { font-size: 12px; color: var(--text-secondary); opacity: .7; }

/* ============ 图标排列可视化选择器 ============ */
.tuos-arrange-picker { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-bottom: 16px; }
.tuos-arrange-card {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px;
    padding: 10px 10px 8px; cursor: pointer; user-select: none; outline: none;
    flex: 0 1 auto; width: 148px;
    background: var(--bg-tertiary); border: 1.5px solid var(--text-secondary);
    border-radius: 12px; transition: all var(--transition-fast);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.dark-mode .tuos-arrange-card { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); }
.tuos-arrange-card:hover { border-color: var(--text-primary); transform: translateY(-1px); }
.tuos-arrange-card:focus-visible { box-shadow: 0 0 0 2px rgba(var(--accent-rgb, 0, 120, 212), 0.35); }
.tuos-arrange-card.selected {
    border-color: var(--accent);
    background: rgba(var(--accent-rgb, 0, 120, 212), 0.06);
    box-shadow: 0 0 0 1px var(--accent);
}
.dark-mode .tuos-arrange-card.selected { background: rgba(var(--accent-rgb, 0, 120, 212), 0.14); }

/* 迷你桌面预览画布（4x3 网格，实心块为图标、透明块为占位） */
.tuos-arrange-preview {
    position: relative; width: 100%; aspect-ratio: 4 / 3; padding: 6px;
    display: grid; gap: 4px;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(3, 1fr);
    background: var(--bg-primary);
    border: 1px solid var(--text-secondary);
    border-radius: 8px;
}
/* Windows：先列后行（竖向填满第一列再右移） */
.tuos-arrange-card[data-mode="column"] .tuos-arrange-preview { grid-auto-flow: column; }
/* macOS：先行后列（横向填满第一行再下移） */
.tuos-arrange-card[data-mode="row"] .tuos-arrange-preview { grid-auto-flow: row; }

/* 填充方向小箭头 */
.tuos-arrange-preview::after {
    content: ''; position: absolute; right: 5px; bottom: 5px;
    width: 0; height: 0; border: 4px solid transparent;
    opacity: 0.45;
}
.tuos-arrange-card[data-mode="column"] .tuos-arrange-preview::after { border-top-color: var(--text-secondary); }
.tuos-arrange-card[data-mode="row"] .tuos-arrange-preview::after,
.tuos-arrange-card[data-mode="row-offset"] .tuos-arrange-preview::after { border-left-color: var(--text-secondary); }

/* 图标方块（纯色块，不显示数字，只表达布局形状） */
.tuos-arrange-preview i {
    display: block;
    background: var(--text-primary);  /* 用主文本色，保证在预览画布上有足够对比度 */
    border-radius: 5px;
    transition: all var(--transition-fast);
}
.dark-mode .tuos-arrange-preview i {
    background: var(--text-primary);  /* 暗色下同样用主文本色（白色），对比度足够 */
}
.tuos-arrange-card.selected .tuos-arrange-preview i {
    background: var(--accent);
    box-shadow: 0 1px 4px rgba(var(--accent-rgb, 0, 120, 212), 0.3);
}

/* 空位（偏移起点前的留白）：完全透明，只占位 */
.tuos-arrange-preview i.arrange-empty {
    background: transparent; box-shadow: none; opacity: 0;
}

.tuos-arrange-label { font-size: 11px; color: var(--text-secondary); text-align: center; line-height: 1.3; }
.tuos-arrange-card.selected .tuos-arrange-label { color: var(--accent); font-weight: 600; }

/* 选中角标 */
.tuos-arrange-check {
    position: absolute; top: 6px; right: 6px;
    width: 16px; height: 16px; border-radius: 50%;
    background: var(--accent); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 10px; line-height: 1; opacity: 0; transform: scale(0.5);
    transition: all var(--transition-fast); pointer-events: none;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.tuos-arrange-card.selected .tuos-arrange-check { opacity: 1; transform: scale(1); }

/* V2 毛玻璃适配 */
body.tuos-v2 .tuos-arrange-card {
    background: rgba(240, 240, 245, 0.5);
    backdrop-filter: blur(var(--v2-blur-light));
    -webkit-backdrop-filter: blur(var(--v2-blur-light));
    border-color: var(--v2-glass-border);
    border-radius: 16px;
}
body.tuos-v2.dark-mode .tuos-arrange-card {
    background: rgba(55, 55, 60, 0.6);
    border-color: rgba(255, 255, 255, 0.15);
}
body.tuos-v2 .tuos-arrange-preview {
    background: rgba(255, 255, 255, 0.4);
    border-color: var(--v2-glass-border);
}
body.tuos-v2.dark-mode .tuos-arrange-preview {
    background: rgba(0, 0, 0, 0.3);
    border-color: rgba(255, 255, 255, 0.12);
}
.tuos-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 48px 24px; text-align: center; }
.tuos-empty-icon { width: 64px; height: 64px; opacity: 0.3; margin-bottom: 16px; }
.tuos-empty-title { font-size: 16px; font-weight: 500; color: var(--text-secondary); margin-bottom: 8px; }
.tuos-empty-desc { font-size: 13px; color: var(--text-tertiary); max-width: 300px; }

/* ============ 动画 ============ */
@keyframes tuos-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes tuos-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes tuos-fade-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes tuos-scale-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
@keyframes tuos-scale-out { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.95); } }

/* ============ 全局按钮高光反馈 ============ */
body.button-glow-enabled .button-glow-target {
    position: relative;
    overflow: hidden;
    --button-glow-x: 50%;
    --button-glow-y: 50%;
}

body.button-glow-enabled .tuos-toggle.button-glow-target {
    overflow: visible;
}

body.button-glow-enabled .tuos-toggle-track.button-glow-target {
    overflow: visible;
}

body.button-glow-enabled .button-toggle-glow-surface {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    border-radius: inherit;
    pointer-events: none;
}

body.button-glow-enabled .button-edge-glow,
body.button-glow-enabled .button-glow-ripple {
    position: absolute;
    pointer-events: none;
    border-radius: 999px;
}

body.button-glow-enabled .button-edge-glow {
    left: var(--button-glow-x);
    top: var(--button-glow-y);
    width: 128px;
    height: 128px;
    z-index: 4;
    opacity: 0;
    transform: translate(-50%, -50%);
    background:
        radial-gradient(circle,
            rgba(255, 255, 255, 0.42) 0%,
            rgba(255, 255, 255, 0.20) 30%,
            rgba(var(--accent-rgb, 0, 120, 212), 0.14) 48%,
            transparent 72%);
    filter: blur(7px);
    mix-blend-mode: screen;
    transition: opacity 140ms ease;
}

body.button-glow-enabled .button-glow-target.button-glow-hover > .button-edge-glow {
    opacity: 0.72;
}

body.button-glow-enabled .tuos-toggle-track.button-glow-hover .button-toggle-glow-surface > .button-edge-glow {
    opacity: 0.8;
}

body.button-glow-enabled .button-glow-ripple {
    z-index: 3;
    transform: translate(-50%, -50%) scale(0);
    background:
        radial-gradient(circle,
            rgba(255, 255, 255, 0.34) 0%,
            rgba(255, 255, 255, 0.18) 36%,
            rgba(var(--accent-rgb, 0, 120, 212), 0.12) 54%,
            transparent 72%);
    mix-blend-mode: screen;
    animation: button-glow-ripple-out 620ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

body.button-glow-enabled .button-toggle-glow-surface .button-edge-glow {
    width: 58px;
    height: 58px;
    filter: blur(5px);
}

body.button-glow-enabled .button-toggle-glow-surface .button-glow-ripple {
    mix-blend-mode: screen;
}

body.button-glow-enabled.dark-mode .button-edge-glow {
    background:
        radial-gradient(circle,
            rgba(255, 255, 255, 0.34) 0%,
            rgba(var(--accent-rgb, 0, 120, 212), 0.18) 34%,
            rgba(var(--accent-rgb, 0, 120, 212), 0.10) 52%,
            transparent 74%);
}

body.button-glow-enabled.dark-mode .button-glow-ripple {
    background:
        radial-gradient(circle,
            rgba(255, 255, 255, 0.28) 0%,
            rgba(var(--accent-rgb, 0, 120, 212), 0.16) 38%,
            rgba(var(--accent-rgb, 0, 120, 212), 0.08) 56%,
            transparent 74%);
}

@keyframes button-glow-ripple-out {
    0% {
        opacity: 0.78;
        transform: translate(-50%, -50%) scale(0.12);
        filter: blur(1px);
    }
    55% {
        opacity: 0.34;
        filter: blur(5px);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1);
        filter: blur(9px);
    }
}

/* ============================================================
   TuOS V2 - 新版实验性 UI
   启用方式: body.tuos-v2
   特性: 动态高斯模糊 + 毛玻璃按钮
============================================================ */

/* V2 全局基础 - 增强模糊效果 */
body.tuos-v2 {
    --v2-blur: 40px;
    --v2-blur-light: 20px;
    --tuos-material-blur: var(--v2-blur);
    --tuos-material-blur-light: var(--v2-blur-light);
    --tuos-wallpaper-url: none;
    --v2-glass-bg: rgba(255, 255, 255, 0.2);
    --v2-glass-bg-dark: rgba(40, 40, 40, 0.5);
    --v2-glass-border: rgba(255, 255, 255, 0.25);
    --v2-glass-border-dark: rgba(255, 255, 255, 0.08);
    --v2-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
    --v2-shadow-dark: 0 8px 32px rgba(0, 0, 0, 0.45);
}

/* V2 隐藏旧版下拉选择的高亮 */
body.tuos-v2 .tuos-select:focus {
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
}

body.tuos-v2 .tuos-select-wrapper:focus-within {
    outline: none !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
    box-shadow: none !important;
}

/* V2 按钮底色调整 - 浅色模式适配浅色主题色 */
body.tuos-v2 .tuos-btn {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.9); /* 更纯净的白色 */
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 50px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    font-weight: 400;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    /* 渐变透明文字 */
    color: transparent;
    background-image: linear-gradient(180deg, 
        var(--accent-hover) 0%,
        var(--accent) 100%);
    -webkit-background-clip: text;
    background-clip: text;
}

/* 按钮背景层 - 基础层 */
body.tuos-v2 .tuos-btn::before {
    content: '';
    position: absolute;
    inset: -1px;
    background: rgba(245, 250, 255, 0.6);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border-radius: 50px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    z-index: -2;
    transition: background 0.3s;
}

/* 45度角高亮层 */
body.tuos-v2 .tuos-btn::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50px;
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.5) 0%,
        rgba(255, 255, 255, 0.15) 30%,
        transparent 50%,
        transparent 100%);
    pointer-events: none;
    z-index: 1;
}

/* 隐藏旧版高亮效果 */
body.tuos-v2 .tuos-btn:focus {
    outline: none;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

body.tuos-v2 .tuos-select-wrapper:focus-within,
body.tuos-v2 .tuos-select:focus,
body.tuos-v2 .tuos-input:focus {
    outline: none;
    box-shadow: none;
}

body.tuos-v2 .tuos-btn:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
}

body.tuos-v2 .tuos-btn:hover::before {
    background: rgba(250, 250, 252, 0.7);
}

body.tuos-v2 .tuos-btn:active {
    transform: translateY(0) scale(0.98);
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
}

body.tuos-v2 .tuos-btn-primary {
    background-image: linear-gradient(180deg, 
        rgba(255, 255, 255, 0.95) 0%, 
        rgba(240, 245, 255, 0.9) 100%);
}

body.tuos-v2 .tuos-btn-primary::before {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.8) 0%, 
        rgba(255, 255, 255, 0.4) 100%);
}

body.tuos-v2 .tuos-btn-primary:hover::before {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.95) 0%, 
        rgba(245, 245, 250, 0.85) 100%);
}

/* V2 深色模式按钮 */
body.tuos-v2.dark-mode .tuos-btn {
    background-image: linear-gradient(180deg, 
        rgba(210, 210, 220, 0.85) 0%, 
        rgba(180, 180, 190, 0.65) 100%);
    border-color: rgba(255, 255, 255, 0.15);
}

body.tuos-v2.dark-mode .tuos-btn::before {
    background: rgba(55, 55, 60, 0.6);
    border-color: rgba(255, 255, 255, 0.12);
}

body.tuos-v2.dark-mode .tuos-btn::after {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.2) 0%,
        rgba(255, 255, 255, 0.06) 30%,
        transparent 50%,
        transparent 100%);
}

body.tuos-v2.dark-mode .tuos-btn:hover::before {
    background: rgba(65, 65, 70, 0.7);
}

/* V2 毛玻璃卡片 */
body.tuos-v2 .tuos-card {
    background: var(--tuos-card-bg-light);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid var(--tuos-card-border-light);
    border-radius: 24px;
    box-shadow: var(--v2-shadow);
}

body.tuos-v2.dark-mode .tuos-card {
    background: var(--tuos-card-bg-dark);
    border-color: var(--tuos-card-border-dark);
    box-shadow: var(--v2-shadow-dark);
}

/* V2 毛玻璃设置项 - 统一透明度（在 settings.js 中使用 !important 覆盖） */
body.tuos-v2 .tuos-setting-item {
    background: var(--tuos-card-bg-light);
    backdrop-filter: blur(20px) saturate(150%);
    -webkit-backdrop-filter: blur(20px) saturate(150%);
    border: 1px solid var(--tuos-card-border-light);
    border-radius: 16px;
    margin-bottom: 8px;
}

body.tuos-v2 .tuos-setting-item:hover {
    background: var(--tuos-card-bg-light-hover);
}

body.tuos-v2.dark-mode .tuos-setting-item {
    background: var(--tuos-card-bg-dark);
    border-color: var(--tuos-card-border-dark);
}

body.tuos-v2.dark-mode .tuos-setting-item:hover {
    background: var(--tuos-card-bg-dark-hover);
}

/* V2 毛玻璃输入框 - 带两层高亮 */
body.tuos-v2 .tuos-input-wrapper {
    position: relative;
    background: rgba(240, 240, 245, 0.5);
    backdrop-filter: blur(var(--v2-blur-light));
    -webkit-backdrop-filter: blur(var(--v2-blur-light));
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 50px;
    overflow: hidden;
}

/* 输入框 45度角高亮 */
body.tuos-v2 .tuos-input-wrapper::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50px;
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.4) 0%,
        rgba(255, 255, 255, 0.1) 30%,
        transparent 50%,
        transparent 100%);
    pointer-events: none;
    z-index: 1;
}

body.tuos-v2 .tuos-input {
    background: transparent;
    border: none;
    position: relative;
    z-index: 2;
}

body.tuos-v2.dark-mode .tuos-input-wrapper {
    background: rgba(55, 55, 60, 0.6);
    border-color: rgba(255, 255, 255, 0.15);
}

body.tuos-v2.dark-mode .tuos-input-wrapper::before {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.15) 0%,
        rgba(255, 255, 255, 0.05) 30%,
        transparent 50%,
        transparent 100%);
}

/* V2 毛玻璃下拉选择 - 带两层高亮 */
body.tuos-v2 .tuos-select-wrapper {
    position: relative;
    /* 移除背景和裁剪，只保留定位 */
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: none;
    border-radius: 0;
    overflow: visible;
}

body.tuos-v2 .tuos-select-trigger {
    position: relative;
    background: rgba(240, 240, 245, 0.5);
    backdrop-filter: blur(var(--v2-blur-light));
    -webkit-backdrop-filter: blur(var(--v2-blur-light));
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 50px;
    overflow: hidden; /* 确保高亮不溢出 */
    min-width: 120px;
    padding: 10px 16px;
}

/* 下拉选择 45度角高亮 (应用在 trigger 上) */
body.tuos-v2 .tuos-select-trigger::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50px;
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.4) 0%,
        rgba(255, 255, 255, 0.1) 30%,
        transparent 50%,
        transparent 100%);
    pointer-events: none;
    z-index: 1;
}

body.tuos-v2 .tuos-select-value,
body.tuos-v2 .tuos-select-arrow {
    position: relative;
    z-index: 2;
}

/* 深色模式适配 */
body.tuos-v2.dark-mode .tuos-select-trigger {
    background: rgba(55, 55, 60, 0.6);
    border-color: rgba(255, 255, 255, 0.15);
}

body.tuos-v2.dark-mode .tuos-select-trigger::before {
    background: linear-gradient(135deg, 
        rgba(255, 255, 255, 0.15) 0%,
        rgba(255, 255, 255, 0.05) 30%,
        transparent 50%,
        transparent 100%);
}

/* V2 下拉菜单样式 */
body.tuos-v2 .tuos-select-dropdown {
    background: var(--v2-glass-bg);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid var(--v2-glass-border);
    border-radius: 16px;
    box-shadow: var(--v2-shadow);
    padding: 6px;
}

body.tuos-v2.dark-mode .tuos-select-dropdown {
    background: var(--v2-glass-bg-dark);
    border-color: var(--v2-glass-border-dark);
    box-shadow: var(--v2-shadow-dark);
}

body.tuos-v2 .tuos-select-option {
    border-radius: 8px;
    margin-bottom: 2px;
}

body.tuos-v2 .tuos-select-option.selected {
    background: rgba(var(--accent-rgb, 0, 120, 212), 0.8);
    backdrop-filter: blur(10px);
}

/* V2 毛玻璃标签栏 */
body.tuos-v2 .tuos-tabbar {
    background: var(--v2-glass-bg);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid var(--v2-glass-border);
    border-radius: 16px;
}

body.tuos-v2 .tuos-tab.active {
    background: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(10px);
    border-radius: 12px;
}

body.tuos-v2.dark-mode .tuos-tabbar {
    background: var(--v2-glass-bg-dark);
    border-color: var(--v2-glass-border-dark);
}

body.tuos-v2.dark-mode .tuos-tab.active {
    background: rgba(255, 255, 255, 0.1);
}

/* V2 毛玻璃模态框 */
body.tuos-v2 .tuos-modal {
    background: var(--v2-glass-bg);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid var(--v2-glass-border);
    border-radius: 24px;
    box-shadow: var(--v2-shadow);
}

body.tuos-v2.dark-mode .tuos-modal {
    background: var(--v2-glass-bg-dark);
    border-color: var(--v2-glass-border-dark);
    box-shadow: var(--v2-shadow-dark);
}

/* V2 毛玻璃列表项 */
body.tuos-v2 .tuos-list-item {
    border-radius: 12px;
    transition: all 0.2s ease;
}

body.tuos-v2 .tuos-list-selectable .tuos-list-item:hover {
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(10px);
}

body.tuos-v2.dark-mode .tuos-list-selectable .tuos-list-item:hover {
    background: rgba(255, 255, 255, 0.1);
}

body.tuos-v2 .tuos-list-item.active {
    background: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.7);
    color: var(--text-primary);
}

/* V2 毛玻璃导航栏 */
body.tuos-v2 .tuos-navbar {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: none;
}

body.tuos-v2.dark-mode .tuos-navbar {
    background: transparent;
    border-bottom: none;
}

/* V2 右键菜单 */
body.tuos-v2 .tuos-context-menu {
    border: 1px solid var(--v2-glass-border);
    border-radius: 16px;
    box-shadow: var(--v2-shadow);
}
body.tuos-v2:not(.blur-disabled) .tuos-context-menu-bg {
    background: var(--v2-glass-bg);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
}
body.tuos-v2.dark-mode .tuos-context-menu {
    border-color: var(--v2-glass-border-dark);
}
body.tuos-v2.dark-mode:not(.blur-disabled) .tuos-context-menu-bg {
    background: var(--v2-glass-bg-dark);
}

body.tuos-v2:not(.blur-disabled) .tuos-context-menu-sub {
    background: var(--v2-glass-bg);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid var(--v2-glass-border);
    box-shadow: var(--v2-shadow);
}

body.tuos-v2.dark-mode:not(.blur-disabled) .tuos-context-menu-sub {
    background: var(--v2-glass-bg-dark);
    border-color: var(--v2-glass-border-dark);
}

/* V2 窗口样式 */
body.tuos-v2 .window {
    background: var(--v2-glass-bg);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid var(--v2-glass-border);
    border-radius: 16px;
    box-shadow: var(--v2-shadow);
}

body.tuos-v2.dark-mode .window {
    background: var(--v2-glass-bg-dark);
    border-color: var(--v2-glass-border-dark);
    box-shadow: var(--v2-shadow-dark);
}

body.tuos-v2 .window-titlebar {
    background: transparent;
    border-bottom: none;
}

body.tuos-v2.dark-mode .window-titlebar {
    border-bottom: none;
}

body.tuos-v2 .window-content {
    background: transparent;
}

/* 懒加载加载状态 */
.window-content.app-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.app-loading-spinner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    color: var(--text-secondary, #888);
}
.app-loading-ring {
    width: 32px;
    height: 32px;
    border: 3px solid var(--border-color, #e0e0e0);
    border-top-color: var(--accent-color, #0078d4);
    border-radius: 50%;
    animation: app-loading-spin 0.8s linear infinite;
}
@keyframes app-loading-spin {
    to { transform: rotate(360deg); }
}
.app-loading-text {
    font-size: 13px;
}
.window-content.app-load-failed {
    display: flex;
    align-items: center;
    justify-content: center;
}
.app-load-error {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
    padding: 24px;
}
.app-load-error-icon {
    font-size: 36px;
}
.app-load-error-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary, #333);
}
.app-load-error-msg {
    font-size: 12px;
    color: var(--text-secondary, #888);
    max-width: 280px;
    word-break: break-all;
}
.app-load-retry {
    margin-top: 8px;
    padding: 6px 20px;
    font-size: 12px;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 6px;
    background: var(--bg-primary, #fff);
    color: var(--text-primary, #333);
    cursor: pointer;
    transition: background 0.15s;
}
.app-load-retry:hover {
    background: var(--bg-secondary, #f5f5f5);
}

/* V2 任务栏样式 */
/* Keep window control button feedback in V2 mode. */
body.tuos-v2 .window .window-control-btn:hover {
    background-color: rgba(0, 0, 0, 0.05) !important;
}

body.tuos-v2.dark-mode .window .window-control-btn:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
}

body.tuos-v2 .window .window-control-btn:focus-visible {
    background-color: rgba(0, 0, 0, 0.08) !important;
}

body.tuos-v2.dark-mode .window .window-control-btn:focus-visible {
    background-color: rgba(255, 255, 255, 0.14) !important;
}

body.tuos-v2 .window .window-control-btn:active {
    background-color: rgba(0, 0, 0, 0.12) !important;
}

body.tuos-v2.dark-mode .window .window-control-btn:active {
    background-color: rgba(255, 255, 255, 0.18) !important;
}

body.tuos-v2 .window .window-control-btn.close:hover {
    background-color: #d13438 !important;
}

body.tuos-v2 .window .window-control-btn.close:active {
    background-color: #b62f33 !important;
}

body.tuos-v2 .taskbar {
    background: rgba(255, 255, 255, 0.45);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border-top: 1px solid var(--v2-glass-border);
}

body.tuos-v2.dark-mode .taskbar {
    background: rgba(40, 40, 40, 0.5);
    border-color: var(--v2-glass-border-dark);
}

/* V2 开始菜单样式 */
body.tuos-v2 .start-menu {
    background: rgba(255, 255, 255, 0.60);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid var(--v2-glass-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--v2-shadow);
}

body.tuos-v2.dark-mode .start-menu {
    background: rgba(40, 40, 40, 0.60);
    border-color: var(--v2-glass-border-dark);
    box-shadow: var(--v2-shadow-dark);
}

/* V2 通知中心样式 */
body.tuos-v2 .notification-center {
    background: rgba(255, 255, 255, 0.60);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid var(--v2-glass-border);
    border-radius: 16px;
    box-shadow: var(--v2-shadow);
}

body.tuos-v2.dark-mode .notification-center {
    background: rgba(40, 40, 40, 0.60);
    border-color: var(--v2-glass-border-dark);
    box-shadow: var(--v2-shadow-dark);
}

/* V2 控制中心样式 */
body.tuos-v2 .control-center {
    background: rgba(255, 255, 255, 0.60);
    backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%);
    border: 1px solid var(--v2-glass-border);
    box-shadow: var(--v2-shadow);
}

body.tuos-v2.dark-mode .control-center {
    background: rgba(40, 40, 40, 0.60);
    border-color: var(--v2-glass-border-dark);
    box-shadow: var(--v2-shadow-dark);
}

/* V2 模式下也遵循全局模糊开关 */
body.tuos-v2.blur-disabled .taskbar,
body.tuos-v2.blur-disabled .start-menu,
body.tuos-v2.blur-disabled .control-center,
body.tuos-v2.blur-disabled .notification-center {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: rgba(255, 255, 255, 0.95) !important;
}

body.tuos-v2.dark-mode.blur-disabled .taskbar,
body.tuos-v2.dark-mode.blur-disabled .start-menu,
body.tuos-v2.dark-mode.blur-disabled .control-center,
body.tuos-v2.dark-mode.blur-disabled .notification-center {
    background: rgba(32, 32, 32, 0.95) !important;
}

/* V2 模式下关闭全局模糊时，窗口降级为低半透明且无模糊 */
body.tuos-v2.blur-disabled.window-blur-enabled .window {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: rgba(255, 255, 255, 0.86) !important;
}

body.tuos-v2.dark-mode.blur-disabled.window-blur-enabled .window {
    background: rgba(32, 32, 32, 0.82) !important;
    border-color: rgba(255, 255, 255, 0.10) !important;
}

body.tuos-v2.window-blur-disabled .window {
    background: var(--bg-primary) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.tuos-v2.window-blur-disabled .window-content {
    background: var(--bg-primary) !important;
}

body.tuos-v2.window-blur-disabled .window-titlebar {
    background: var(--bg-secondary) !important;
}

body.tuos-v2.dark-mode.window-blur-disabled .window {
    background: var(--bg-primary) !important;
    border-color: var(--border-color) !important;
}

/* V2 浏览器应用样式 */
body.tuos-v2 .browser-app {
    background: transparent;
}

body.tuos-v2 .browser-header {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-bottom: none !important;
}

body.tuos-v2.dark-mode .browser-header {
    background: transparent !important;
    border-bottom: none !important;
}

body.tuos-v2 .browser-address-bar {
    background: var(--v2-glass-bg) !important;
    backdrop-filter: blur(var(--v2-blur-light)) !important;
    -webkit-backdrop-filter: blur(var(--v2-blur-light)) !important;
    border: 1px solid var(--v2-glass-border) !important;
    border-radius: 50px !important;
}

body.tuos-v2.dark-mode .browser-address-bar {
    background: var(--v2-glass-bg-dark) !important;
    border-color: var(--v2-glass-border-dark) !important;
}

/* V2 记事本应用样式 */
body.tuos-v2 .notes-app {
    background: transparent;
}

/* V2 文件管理器样式 */
body.tuos-v2 .files-app {
    background: transparent;
}

body.tuos-v2 .files-toolbar {
    background: rgba(255, 255, 255, 0.5) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border-bottom: none !important;
    border-radius: 12px;
    margin: 8px !important;
    height: fit-content !important;
}

body.tuos-v2.dark-mode .files-toolbar {
    background: rgba(255, 255, 255, 0.1) !important;
    border-bottom: none !important;
}

body.tuos-v2 .files-content {
    background: transparent !important;
}

body.tuos-v2 .files-statusbar {
    display: none !important;
}

body.tuos-v2.dark-mode .files-statusbar {
    display: none !important;
}

/* V2 设置应用样式 */
body.tuos-v2 .settings-app {
    background: transparent;
}

body.tuos-v2 .settings-content {
    background: transparent !important;
}

body.tuos-v2 .settings-section {
    background: transparent !important;
}

body.tuos-v2 .settings-content *:not(.tuos-setting-item):not(.settings-recommend-item):not(.settings-recent-item):not(.network-hero-card):not(.network-option-item):not(.network-expand-panel):not(.wallpaper-item):not(.settings-overview-wallpaper):not(.settings-accent-swatch):not(.settings-accent-entry-swatch):not(.storage-bar-wrapper):not(.storage-bar-fill):not(.legend-dot):not(.tuos-toggle-track):not(.tuos-toggle-thumb):not(.button-toggle-glow-surface):not(.button-edge-glow):not(.button-glow-ripple):not(img):not(span):not(h2):not(h3):not(h4):not(p):not(button):not(input):not(select) {
    background-color: transparent;
}

/* 修复V2模式下可能出现的白色色块 */
body.tuos-v2 .settings-content > div:not(.settings-section):not(.settings-overview-header):not(.settings-secondary-topbar) {
    background: transparent !important;
}

/* 修复V2模式下窗口重叠时的白条问题 */
body.tuos-v2 .window *:not(.tuos-setting-item):not(.fw-nav-item):not(.tuos-button):not(.tuos-toggle):not(.tuos-toggle-track):not(.tuos-toggle-thumb):not(.button-toggle-glow-surface):not(.button-edge-glow):not(.button-glow-ripple):not(.tuos-select):not(.settings-recommend-item):not(.settings-recent-item):not(.network-hero-card):not(.network-option-item):not(.network-expand-panel):not(.wallpaper-item):not(.settings-overview-wallpaper):not(.settings-accent-swatch):not(.settings-accent-entry-swatch):not(.storage-bar-wrapper):not(.storage-bar-fill):not(.legend-dot):not(.photos-toolbar-classic):not(.photos-toolbar-v2):not(.photos-tool-btn):not(.photos-adjust-panel):not(.photos-info-panel):not(.photos-viewer):not(.photos-back-btn):not(.photos-counter):not(.photos-card):not(.photos-card-inner):not(.photos-card-caption):not(.photos-card-meta):not(.photos-search-bar):not(.photos-search-input):not(.photos-retry-btn):not(.photos-wallpaper-menu):not(.photos-wpmenu-item):not(.photos-no-result) {
    background-color: transparent;
}

/* V2 任务栏边框修复 */
body.tuos-v2 .taskbar {
    border-bottom: none !important;
    box-shadow: var(--v2-shadow) !important;
}

body.tuos-v2.dark-mode .taskbar {
    border-bottom: none !important;
    box-shadow: var(--v2-shadow-dark) !important;
}

/* V2 时钟应用样式 */
body.tuos-v2 .clock-app {
    background: transparent;
}

body.tuos-v2 .clock-content {
    background: transparent !important;
}

/* V2 天气应用样式 */
body.tuos-v2 .weather-app {
    background: transparent;
}

body.tuos-v2 .weather-content {
    background: transparent !important;
}

body.tuos-v2 .weather-hero {
    background: linear-gradient(135deg, rgba(75, 124, 255, 0.6), rgba(103, 144, 255, 0.7)) !important;
    backdrop-filter: blur(var(--v2-blur)) saturate(180%) !important;
    -webkit-backdrop-filter: blur(var(--v2-blur)) saturate(180%) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
}

body.tuos-v2.dark-mode .weather-hero {
    background: linear-gradient(135deg, rgba(42, 47, 58, 0.7), rgba(60, 66, 82, 0.8)) !important;
    border-color: var(--v2-glass-border-dark) !important;
}

/* V2 计算器应用样式 */
body.tuos-v2 .calculator-app {
    background: transparent !important;
}

body.tuos-v2 .calculator-display {
    background: var(--v2-glass-bg) !important;
    backdrop-filter: blur(var(--v2-blur-light)) saturate(150%) !important;
    -webkit-backdrop-filter: blur(var(--v2-blur-light)) saturate(150%) !important;
    border: 1px solid var(--v2-glass-border) !important;
}

body.tuos-v2.dark-mode .calculator-display {
    background: var(--v2-glass-bg-dark) !important;
    border-color: var(--v2-glass-border-dark) !important;
}

body.tuos-v2 .calc-btn {
    background: var(--v2-glass-bg) !important;
    backdrop-filter: blur(10px) !important;
    border: 1px solid var(--v2-glass-border) !important;
}

body.tuos-v2.dark-mode .calc-btn {
    background: var(--v2-glass-bg-dark) !important;
    border-color: var(--v2-glass-border-dark) !important;
}

body.tuos-v2 .calc-btn-operator {
    background: rgba(var(--accent-rgb, 0, 120, 212), 0.2) !important;
}

body.tuos-v2 .calc-btn-equals {
    background: linear-gradient(135deg, rgba(var(--accent-rgb, 0, 120, 212), 0.6), var(--accent-hover)) !important;
    color: white !important;
}

/* ============ 警告框/对话框组件 ============ */
.tuos-dialog-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    opacity: 0;
    transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.tuos-dialog-overlay.tuos-dialog-visible {
    opacity: 1;
}

.tuos-dialog-overlay.tuos-dialog-closing {
    opacity: 0;
}

/* 旧版UI对话框样式 - 简洁风格 */
.tuos-dialog {
    background: rgba(255, 255, 255, 0.98);
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12), 0 1px 4px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(0, 0, 0, 0.1);
    min-width: min(280px, 100vw);
    max-width: 400px;
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    transform: scale(0.95);
    opacity: 0;
    transition: all 0.2s ease-out;
}

.tuos-dialog.tuos-dialog-visible {
    transform: scale(1);
    opacity: 1;
}

.tuos-dialog.tuos-dialog-closing {
    transform: scale(0.95);
    opacity: 0;
}

.dark-mode .tuos-dialog {
    background: rgba(50, 50, 50, 0.98);
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}

/* 旧版UI隐藏图标 */
.tuos-dialog-header {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 24px 8px;
}

.tuos-dialog-icon {
    display: none;
}

.tuos-dialog-title {
    font-size: 14px;
    font-weight: 500;
    color: var(--text-primary);
    text-align: center;
}

.tuos-dialog-content {
    padding: 8px 24px 20px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-secondary);
    text-align: center;
}

.tuos-dialog-content .tuai-custom-risk-content {
    text-align: left;
}

.tuos-dialog-footer {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 12px 24px 20px;
    border-top: none;
}

.tuos-dialog-footer .tuos-btn {
    min-width: 64px;
    padding: 6px 16px;
    font-size: 13px;
    border-radius: 6px;
}

.dark-mode .tuos-dialog-footer {
    border-top: none;
}

/* V2 对话框样式 - 毛玻璃风格 */
body.tuos-v2 .tuos-dialog {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(40px) saturate(180%);
    -webkit-backdrop-filter: blur(40px) saturate(180%);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.3);
    min-width: min(320px, 100vw);
    max-width: 480px;
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    transform: scale(0.9) translateY(-20px);
}

body.tuos-v2 .tuos-dialog.tuos-dialog-visible {
    transform: scale(1) translateY(0);
}

body.tuos-v2 .tuos-dialog.tuos-dialog-closing {
    transform: scale(0.95) translateY(10px);
}

body.tuos-v2.dark-mode .tuos-dialog {
    background: rgba(0, 0, 0, 0.7);
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

/* V2模式显示图标 */
body.tuos-v2 .tuos-dialog-icon {
    display: block;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
}

body.tuos-v2 .tuos-dialog-header {
    justify-content: flex-start;
    gap: 12px;
    padding: 20px 24px 12px;
}

body.tuos-v2 .tuos-dialog-title {
    font-size: 18px;
    font-weight: 600;
    text-align: left;
}

body.tuos-v2 .tuos-dialog-content {
    text-align: left;
    padding: 0 24px 20px;
    font-size: 14px;
    line-height: 1.6;
}

body.tuos-v2 .tuos-dialog-footer {
    justify-content: flex-end;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

body.tuos-v2.dark-mode .tuos-dialog-footer {
    border-top-color: rgba(255, 255, 255, 0.08);
}

body.tuos-v2 .tuos-dialog-info .tuos-dialog-icon { filter: invert(35%) sepia(98%) saturate(1500%) hue-rotate(190deg) brightness(95%); }
body.tuos-v2 .tuos-dialog-warning .tuos-dialog-icon { filter: invert(70%) sepia(80%) saturate(600%) hue-rotate(5deg) brightness(100%); }
body.tuos-v2 .tuos-dialog-error .tuos-dialog-icon { filter: invert(25%) sepia(95%) saturate(2500%) hue-rotate(350deg) brightness(90%); }

/* ============ 输入对话框 ============ */
.tuos-input-dialog .tuos-dialog-content {
    padding: 12px 24px 20px;
}

/* 对话框内的输入容器 - 移除外层边框 */
.tuos-input-dialog .tuos-input-wrapper {
    position: relative;
    border: none;
    background: transparent;
    padding: 0;
    box-shadow: none;
}

.tuos-input-dialog .tuos-input-wrapper::before {
    display: none;
}

.tuos-input-dialog-input {
    width: 100%;
    padding: 10px 14px;
    font-size: 14px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.8);
    color: var(--text-primary);
    outline: none;
    transition: all 0.15s ease;
    box-sizing: border-box;
}

/* 旧版UI - 单圈高亮 */
.tuos-input-dialog-input:focus {
    border-color: var(--accent);
}

.tuos-input-dialog-input.error {
    border-color: #d32f2f;
}

.tuos-input-dialog-input::placeholder {
    color: var(--text-secondary);
    opacity: 0.6;
}

.dark-mode .tuos-input-dialog-input {
    background: rgba(60, 60, 60, 0.8);
    border-color: rgba(255, 255, 255, 0.15);
}

.dark-mode .tuos-input-dialog-input:focus {
    border-color: var(--accent);
}

.tuos-input-error {
    margin-top: 8px;
    font-size: 12px;
    color: #d32f2f;
}

/* V2 输入对话框样式 - 药丸形圆角 */
body.tuos-v2 .tuos-input-dialog-input {
    background: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(10px);
    border-radius: 20px;
    padding: 10px 18px;
}

body.tuos-v2 .tuos-input-dialog-input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(var(--accent-rgb, 0, 120, 212), 0.25);
}

body.tuos-v2.dark-mode .tuos-input-dialog-input {
    background: rgba(255, 255, 255, 0.1);
}

body.tuos-v2.dark-mode .tuos-input-dialog-input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(var(--accent-rgb, 74, 163, 232), 0.3);
}

/* ============ 通知组件 (Toast) ============ */
.tuos-toast-container {
    position: fixed;
    bottom: 80px;
    right: 20px;
    display: flex;
    flex-direction: column-reverse;
    gap: 12px;
    z-index: 100000;
    pointer-events: none;
}

/* 旧版UI通知样式 */
.tuos-toast {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(30px) saturate(150%);
    -webkit-backdrop-filter: blur(30px) saturate(150%);
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(0, 0, 0, 0.08);
    min-width: min(300px, 100vw);
    max-width: 400px;
    pointer-events: auto;
    transform: translateX(120%);
    opacity: 0;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.tuos-toast.tuos-toast-enter {
    transform: translateX(0);
    opacity: 1;
}

.tuos-toast.tuos-toast-exit {
    transform: translateX(120%);
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.5, 0, 0.75, 0);
}

.dark-mode .tuos-toast {
    background: rgba(30, 30, 30, 0.8);
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.tuos-toast-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tuos-toast-icon img {
    width: 20px;
    height: 20px;
}

.tuos-toast-info .tuos-toast-icon img { filter: invert(35%) sepia(98%) saturate(1500%) hue-rotate(190deg) brightness(95%); }
.tuos-toast-success .tuos-toast-icon img { filter: invert(50%) sepia(80%) saturate(500%) hue-rotate(90deg) brightness(95%); }
.tuos-toast-warning .tuos-toast-icon img { filter: invert(70%) sepia(80%) saturate(600%) hue-rotate(5deg) brightness(100%); }
.tuos-toast-error .tuos-toast-icon img { filter: invert(25%) sepia(95%) saturate(2500%) hue-rotate(350deg) brightness(90%); }

.tuos-toast-body {
    flex: 1;
    min-width: 0;
}

.tuos-toast-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 4px;
}

.tuos-toast-message {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.5;
}

.tuos-toast-close {
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.5;
    transition: all 0.15s ease;
    flex-shrink: 0;
}

.tuos-toast-close:hover {
    background: rgba(0, 0, 0, 0.08);
    opacity: 1;
}

.dark-mode .tuos-toast-close:hover {
    background: rgba(255, 255, 255, 0.1);
}

.tuos-toast-close img {
    width: 12px;
    height: 12px;
}

/* 进度模式：Toast 内进度条 */
.tuos-toast-progress {
    margin-top: 10px;
    height: 4px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.08);
    overflow: hidden;
}
.dark-mode .tuos-toast-progress {
    background: rgba(255, 255, 255, 0.12);
}
.tuos-toast-progress-bar {
    height: 100%;
    width: 0%;
    border-radius: 999px;
    background: var(--accent, #4aa3e8);
    transition: width 0.2s ease;
}

/* V2 通知样式 */
body.tuos-v2 .tuos-toast {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(40px) saturate(180%);
    -webkit-backdrop-filter: blur(40px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 18px;
}

body.tuos-v2.dark-mode .tuos-toast {
    background: rgba(0, 0, 0, 0.7);
    border-color: rgba(255, 255, 255, 0.1);
}

body.tuos-v2 .tuos-toast-title {
    font-size: 16px;
}

body.tuos-v2 .tuos-toast-message {
    font-size: 14px;
}

/* Global translucent card tone: match the lighter #FFFFFF8C setting-card state. */
body.tuos-v2 {
    --tuos-card-bg-light: rgba(255, 255, 255, 0.55);
    --tuos-card-bg-light-hover: rgba(255, 255, 255, 0.62);
    --tuos-card-bg-dark: rgba(24, 28, 36, 0.48);
    --tuos-card-bg-dark-hover: rgba(34, 40, 52, 0.58);
    --tuos-card-border-light: rgba(255, 255, 255, 0.30);
    --tuos-card-border-dark: rgba(255, 255, 255, 0.10);
}
body.tuos-v2.material-gaussian:not(.blur-disabled).window-blur-enabled .window,
body.tuos-v2.material-gaussian:not(.blur-disabled) .window.window-blur,
body.tuos-v2.material-gaussian:not(.blur-disabled) .taskbar,
body.tuos-v2.material-gaussian:not(.blur-disabled) .start-menu,
body.tuos-v2.material-gaussian:not(.blur-disabled) .control-center,
body.tuos-v2.material-gaussian:not(.blur-disabled) .notification-center {
    backdrop-filter: blur(var(--tuos-material-blur, 40px)) saturate(180%) !important;
    -webkit-backdrop-filter: blur(var(--tuos-material-blur, 40px)) saturate(180%) !important;
}

body.tuos-v2.material-gaussian:not(.blur-disabled) .tuos-card,
body.tuos-v2.material-gaussian:not(.blur-disabled) .tuos-setting-item,
body.tuos-v2.material-gaussian:not(.blur-disabled) .tuos-select-trigger,
body.tuos-v2.material-gaussian:not(.blur-disabled) .tuos-select-dropdown,
body.tuos-v2.material-gaussian:not(.blur-disabled) .tuos-context-menu-bg,
body.tuos-v2.material-gaussian:not(.blur-disabled) .tuos-dialog,
body.tuos-v2.material-gaussian:not(.blur-disabled) .tuos-toast,
body.tuos-v2.material-gaussian:not(.blur-disabled) .files-toolbar,
body.tuos-v2.material-gaussian:not(.blur-disabled) .browser-header,
body.tuos-v2.material-gaussian:not(.blur-disabled) .photos-toolbar-v2,
body.tuos-v2.material-gaussian:not(.blur-disabled) .appshop-app-card,
body.tuos-v2.material-gaussian:not(.blur-disabled) .media-player-bar {
    backdrop-filter: blur(var(--tuos-material-blur-light, 20px)) saturate(160%) !important;
    -webkit-backdrop-filter: blur(var(--tuos-material-blur-light, 20px)) saturate(160%) !important;
}

body.tuos-v2 .tuos-card,
body.tuos-v2 .tuos-setting-item,
body.tuos-v2 .settings-recommend-item,
body.tuos-v2 .settings-recent-item,
body.tuos-v2 .network-hero-card,
body.tuos-v2 .network-option-item,
body.tuos-v2 .network-expand-panel,
body.tuos-v2 .app-list-item,
body.tuos-v2 .appshop-app-card,
body.tuos-v2 .appshop-category-card,
body.tuos-v2 .worldclock-card {
    background-color: var(--tuos-card-bg-light) !important;
    background-image: none !important;
    border-color: var(--tuos-card-border-light) !important;
}

body.tuos-v2 .tuos-card:hover,
body.tuos-v2 .tuos-setting-item:hover,
body.tuos-v2 .settings-recommend-item:hover,
body.tuos-v2 .settings-recent-item:hover,
body.tuos-v2 .network-option-item:hover,
body.tuos-v2 .app-list-item:hover,
body.tuos-v2 .appshop-app-card:hover,
body.tuos-v2 .appshop-category-card:hover,
body.tuos-v2 .worldclock-card:hover {
    background-color: var(--tuos-card-bg-light-hover) !important;
}

body.tuos-v2.dark-mode .tuos-card,
body.tuos-v2.dark-mode .tuos-setting-item,
body.tuos-v2.dark-mode .settings-recommend-item,
body.tuos-v2.dark-mode .settings-recent-item,
body.tuos-v2.dark-mode .network-hero-card,
body.tuos-v2.dark-mode .network-option-item,
body.tuos-v2.dark-mode .network-expand-panel,
body.tuos-v2.dark-mode .app-list-item,
body.tuos-v2.dark-mode .appshop-app-card,
body.tuos-v2.dark-mode .appshop-category-card,
body.tuos-v2.dark-mode .worldclock-card {
    background-color: var(--tuos-card-bg-dark) !important;
    background-image: none !important;
    border-color: var(--tuos-card-border-dark) !important;
}

body.tuos-v2.dark-mode .tuos-card:hover,
body.tuos-v2.dark-mode .tuos-setting-item:hover,
body.tuos-v2.dark-mode .settings-recommend-item:hover,
body.tuos-v2.dark-mode .settings-recent-item:hover,
body.tuos-v2.dark-mode .network-option-item:hover,
body.tuos-v2.dark-mode .app-list-item:hover,
body.tuos-v2.dark-mode .appshop-app-card:hover,
body.tuos-v2.dark-mode .appshop-category-card:hover,
body.tuos-v2.dark-mode .worldclock-card:hover {
    background-color: var(--tuos-card-bg-dark-hover) !important;
}
