html,body,#root{width:100%;height:100%;overflow:hidden}:root{--primary:#6366f1;--primary-light:#818cf8;--primary-dark:#4f46e5;--primary-glow:#6366f159;--accent:#a855f7;--accent-light:#c084fc;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--bg:#f8fafc;--bg-alt:#f1f5f9;--surface:#fff;--surface-hover:#fafbfd;--border:#e2e8f0;--border-light:#f1f5f9;--text:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f, 0 2px 4px #0000000a;--shadow-lg:0 8px 24px #00000014, 0 4px 8px #0000000a;--shadow-xl:0 12px 36px #0000001a, 0 6px 12px #0000000f;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--ease:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}.app-root{flex-direction:column;width:100%;height:100%;display:flex}.app-body{flex:1;display:flex;overflow:hidden}.canvas-container{background-color:#fafbfd;background-image:radial-gradient(circle,#e2e8f0 .5px,#0000 .5px);background-size:24px 24px;flex:1;position:relative;overflow:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes fadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 var(--primary-glow)}50%{box-shadow:0 0 0 8px #0000}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes gradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes borderGlow{0%,to{border-color:#6366f133}50%{border-color:#6366f180}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ant-btn{border-radius:var(--radius-sm)!important;transition:all .2s var(--ease)!important;font-weight:500!important}.ant-btn-primary{box-shadow:var(--shadow-sm)!important}.ant-btn-primary:hover{box-shadow:var(--shadow-md)!important;transform:translateY(-1px)!important}.ant-input,.ant-input-affix-wrapper{border-radius:var(--radius-sm)!important;transition:all .15s var(--ease)!important}.ant-input:hover,.ant-input-affix-wrapper:hover{border-color:var(--primary-light)!important}.ant-input:focus,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused{border-color:var(--primary)!important;box-shadow:0 0 0 2px var(--primary-glow)!important}.ant-select-selector{border-radius:var(--radius-sm)!important;transition:all .15s var(--ease)!important}.ant-select:hover .ant-select-selector{border-color:var(--primary-light)!important}.ant-select-focused .ant-select-selector{border-color:var(--primary)!important;box-shadow:0 0 0 2px var(--primary-glow)!important}.ant-slider-track{background:linear-gradient(90deg, var(--primary), var(--accent))!important}.ant-slider-handle{border-color:var(--primary)!important}.ant-slider-handle:focus{box-shadow:0 0 0 3px var(--primary-glow)!important}.ant-tag{border-radius:var(--radius-xs)!important;font-weight:500!important}.ant-divider{border-color:var(--border-light)!important}.ant-modal-content{overflow:hidden;border-radius:var(--radius-lg)!important}.ant-tabs-ink-bar{background:var(--primary)!important}.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--primary)!important}.ant-list-item{transition:background .15s var(--ease);border-bottom-color:var(--border-light)!important}.ant-empty .ant-empty-description{color:var(--text-muted)!important}
