:root{--brand-primary:#4f46e5;--brand-primary-soft:#6366f1;--brand-accent:#06b6d4;--brand-gradient:linear-gradient(135deg, #4f46e5 0%, #06b6d4 100%);--brand-gradient-soft:linear-gradient(135deg, #4f46e514 0%, #06b6d414 100%);--bg-app:#f5f7fb;--bg-card:#fff;--bg-card-soft:#fafbff;--bg-elevated:#fff;--bg-hover:#f3f4f8;--bg-muted:#f0f1f5;--sidebar-bg:#0f172a;--sidebar-bg-hover:#1e293b;--sidebar-text:#cbd5e1;--sidebar-text-active:#fff;--sidebar-active-bg:linear-gradient(135deg, #4f46e5d9 0%, #06b6d4d9 100%);--sidebar-border:#ffffff0f;--header-bg:#ffffffd9;--header-border:#0f172a0f;--header-text:#0f172a;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--text-inverse:#fff;--border-color:#e5e7eb;--border-color-soft:#eef0f4;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--color-info:#3b82f6;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 32px #0f172a1f;--shadow-glow:0 12px 32px #4f46e52e;--sidebar-width:232px;--sidebar-collapsed-width:72px;--header-height:60px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-2xl:24px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--duration-fast:.15s;--duration-base:.25s;--duration-slow:.4s}html.dark,html[data-theme=dark]{--bg-app:#0b1120;--bg-card:#111827;--bg-card-soft:#0f172a;--bg-elevated:#1f2937;--bg-hover:#1e293b;--bg-muted:#1e293b;--sidebar-bg:#0a0f1c;--sidebar-bg-hover:#111827;--sidebar-text:#94a3b8;--sidebar-text-active:#fff;--sidebar-border:#ffffff0d;--header-bg:#111827d9;--header-border:#ffffff0f;--header-text:#f1f5f9;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#64748b;--border-color:#ffffff14;--border-color-soft:#ffffff0a;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000073, 0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000073;--shadow-lg:0 12px 32px #0000008c;--shadow-glow:0 12px 32px #6366f159}*{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-app);width:100%;height:100%;color:var(--text-primary);transition:background-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,Helvetica Neue,Arial,sans-serif}#app{width:100%;height:100%}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);transition:background var(--duration-fast);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.page-container{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color-soft);box-shadow:var(--shadow-xs);padding:var(--space-2xl);transition:background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out)}.toolbar{align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap;display:flex}.toolbar-spacer{flex:1}html.dark{--el-bg-color:var(--bg-card);--el-bg-color-page:var(--bg-app);--el-bg-color-overlay:var(--bg-elevated);--el-text-color-primary:var(--text-primary);--el-text-color-regular:var(--text-secondary);--el-text-color-secondary:var(--text-muted);--el-border-color:var(--border-color);--el-border-color-light:var(--border-color-soft);--el-fill-color:var(--bg-muted);--el-fill-color-blank:var(--bg-card);--el-fill-color-light:var(--bg-hover);--el-color-primary:var(--brand-primary);--el-color-primary-light-3:#818cf8;--el-color-primary-light-5:#a5b4fc;--el-color-primary-light-7:#c7d2fe;--el-color-primary-light-8:#ddd6fe;--el-color-primary-light-9:#ede9fe;--el-color-primary-dark-2:#4338ca;--el-box-shadow-light:var(--shadow-sm);--el-box-shadow:var(--shadow-md);--el-box-shadow-dark:var(--shadow-lg)}html.dark .el-card,html.dark .el-table,html.dark .el-input__wrapper,html.dark .el-textarea__inner,html.dark .el-select__wrapper{background-color:var(--el-bg-color);color:var(--el-text-color-primary)}html.dark .el-table tr,html.dark .el-table th.el-table__cell,html.dark .el-table td.el-table__cell{background-color:var(--el-bg-color);border-color:var(--el-border-color-light);color:var(--el-text-color-primary)}html.dark .el-table--striped .el-table__body tr.el-table__row--striped td{background-color:var(--bg-card-soft)}html.dark .el-menu,html.dark .el-sub-menu .el-menu{background-color:var(--sidebar-bg)}html.dark .el-menu-item,html.dark .el-sub-menu__title{color:var(--sidebar-text)}html.dark .el-menu-item:hover,html.dark .el-sub-menu__title:hover{background-color:var(--sidebar-bg-hover);color:var(--sidebar-text-active)}html.dark .el-menu-item.is-active{color:var(--sidebar-text-active)}html.dark .el-dialog,html.dark .el-drawer,html.dark .el-message-box{background-color:var(--el-bg-color-overlay);color:var(--el-text-color-primary)}html.dark .el-drawer__header{color:var(--el-text-color-primary)}html.dark .el-pagination .el-pager li,html.dark .el-pagination .btn-prev,html.dark .el-pagination .btn-next{background-color:var(--el-bg-color);color:var(--el-text-color-regular)}html.dark .el-pagination .el-pager li.is-active{background-color:var(--brand-primary);color:#fff}.tauri-drag-region{-webkit-user-select:none;user-select:none;cursor:default}.tauri-drag-region button,.tauri-drag-region a,.tauri-drag-region input,.tauri-drag-region .el-button,.tauri-drag-region .el-input,.tauri-drag-region .el-select,.tauri-drag-region .el-dropdown,.tauri-drag-region .el-badge{-webkit-user-select:auto;user-select:auto;pointer-events:auto}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.6}}@keyframes spin{to{transform:rotate(360deg)}}.fade-enter-active,.fade-leave-active{transition:opacity var(--duration-base) var(--ease-out)}.fade-enter-from,.fade-leave-to{opacity:0}.page-enter-active,.page-leave-active{transition:opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out)}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-4px)}.glass{background:var(--bg-card);-webkit-backdrop-filter:saturate(180%)blur(12px);border:1px solid var(--border-color-soft)}html.dark .glass{background:#111827b3;border-color:#ffffff0f}.gradient-text{background:var(--brand-gradient);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}
