:root{--brand-primary: #1677ff;--brand-primary-dark: #0958d9;--brand-primary-light: #e6f4ff;--brand-accent: #13c2c2;--brand-gradient: linear-gradient(135deg, #1677ff 0%, #13c2c2 100%);--brand-gradient-soft: linear-gradient(135deg, #1677ff14 0%, #13c2c210 100%);--bg-page: #f0f2f5;--bg-card: #ffffff;--bg-subtle: #fafafa;--text-primary: rgba(0, 0, 0, .88);--text-secondary: rgba(0, 0, 0, .55);--text-tertiary: rgba(0, 0, 0, .38);--border-color: #e8eaed;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-card: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);--shadow-card-hover: 0 6px 16px rgba(22, 119, 255, .1), 0 2px 6px rgba(16, 24, 40, .08);--shadow-pop: 0 8px 24px rgba(16, 24, 40, .14);--ease-out: cubic-bezier(.215, .61, .355, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}html,body,#root{height:100%}body{margin:0;background:var(--bg-page);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#1677ff2e}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#00000029;border-radius:8px}*::-webkit-scrollbar-thumb:hover{background:#00000047}*::-webkit-scrollbar-track{background:transparent}.ant-typography{line-height:1.7}.ant-card{border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-card);transition:box-shadow .28s var(--ease-out),transform .28s var(--ease-out),border-color .28s var(--ease-out)}.ant-card-hoverable:hover,.card-lift:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px);border-color:#1677ff59}.ant-card:has(.ant-statistic),.ant-card:has(.ant-table):hover{box-shadow:var(--shadow-card-hover)}.ant-card .ant-card-head{padding:10px 16px;min-height:auto}.ant-card-small .ant-card-head{padding:8px 12px;min-height:auto}.ant-card .ant-card-body{padding:16px}.ant-card-small .ant-card-body{padding:12px}.ant-btn{border-radius:var(--radius-sm);transition:all .2s var(--ease-out)}.ant-btn-primary{background:var(--brand-gradient);border:none;box-shadow:0 2px 6px #1677ff4d}.ant-btn-primary:not(:disabled):hover{background:var(--brand-gradient);filter:brightness(1.08);box-shadow:0 4px 12px #1677ff6b;transform:translateY(-1px)}.ant-btn:not(:disabled):active{transform:scale(.97)}.ant-btn-default:not(:disabled):hover{border-color:var(--brand-primary);color:var(--brand-primary)}.ant-input,.ant-input-affix-wrapper,.ant-input-number,.ant-select-selector{border-radius:var(--radius-sm)!important;transition:border-color .2s var(--ease-out),box-shadow .2s var(--ease-out)}.ant-input-affix-wrapper-focused,.ant-input:focus,.ant-input-focused,.ant-select-focused .ant-select-selector{box-shadow:0 0 0 3px #1677ff1f!important}.ant-tag{border-radius:4px;font-weight:500}.ant-table-thead>tr>th{background:var(--bg-subtle);font-weight:600}.ant-table-tbody>tr{transition:background .18s var(--ease-out)}.ant-table-tbody>tr:hover>td{background:#1677ff0a!important}.card-title{font-weight:700}.gradient-text{background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.code-block{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:12px;font-size:12px;max-height:220px;overflow:auto}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseGlow{0%,to{box-shadow:0 0 #1677ff59}50%{box-shadow:0 0 0 6px #1677ff00}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.anim-fade-up{animation:fadeUp .45s var(--ease-out) both}.anim-fade-in{animation:fadeIn .4s var(--ease-out) both}.page-enter{animation:fadeUp .4s var(--ease-out) both}.ant-skeleton .ant-skeleton-content .ant-skeleton-title,.ant-skeleton .ant-skeleton-content .ant-skeleton-paragraph>li{border-radius:6px}@media (max-width: 576px){.ant-layout-content{margin:10px!important}.ant-statistic-title{font-size:12px}.ant-statistic-content{font-size:20px!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
