body {margin: 0;font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;background: var(--bg-body);color: var(--text-main);height: 100vh;display: flex;flex-direction: column;overflow: hidden;user-select: none;-webkit-font-smoothing: antialiased;transition: background-color 0.3s, color 0.3s;}
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-thumb {background: var(--border-deep);border-radius: 8px;opacity: 0.5;}
::-webkit-scrollbar-thumb:hover { background: var(--text-sub); }
::-webkit-scrollbar-track { background: transparent; }

/* 基础辅助类 */
.text-danger { color: var(--danger) !important; }
.pad-12 { padding: 12px; }
.mb-4 { margin-bottom: 4px; }
.mt-6 { margin-top: 6px; }
.mt-8 { margin-top: 8px; }
.flex-center { display: flex; justify-content: center; }
.version-text { font-size: 12px; font-weight: normal; color: var(--text-sub); }

/* 全局平滑拖拽与元素位移动画 */
.card-list-move, .card-list-enter-active, .card-list-leave-active,
.inline-list-move, .inline-list-enter-active, .inline-list-leave-active,
.sidebar-list-move, .sidebar-list-enter-active, .sidebar-list-leave-active,
.tab-list-move, .tab-list-enter-active, .tab-list-leave-active { transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important; }

/* 禁用在缩放/平移蓝图画布时的移动动画，防止计算边界框时产生弹跳现象 */
.is-transforming .card-list-move,
.is-transforming .inline-list-move,
.is-transforming .sidebar-list-move,
.is-transforming .tab-list-move,
.bp-smooth .card-list-move,
.bp-smooth .inline-list-move,
.bp-smooth .sidebar-list-move,
.bp-smooth .tab-list-move { transition: none !important; }

.card-list-enter-from,
.inline-list-enter-from,
.sidebar-list-enter-from,
.tab-list-enter-from { opacity: 0; transform: translateY(15px); }

.card-list-leave-active,
.inline-list-leave-active,
.sidebar-list-leave-active,
.tab-list-leave-active { overflow: hidden; }

.card-list-leave-to,
.inline-list-leave-to,
.sidebar-list-leave-to,
.tab-list-leave-to {
    opacity: 0;
    max-height: 0;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    border-width: 0 !important;
    transform: scale(0.9);
}

/* 其他可能跨文件共享的通用类 */
.list-item, .inline-dialogue-item { max-height: 45px; }
.char-item, .tab-item { max-height: 60px; }
.empty-state { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--text-sub); opacity: 0.6; }
