:root{--color-primary-200: #94b4ff;--color-primary-300: #6e8fff;--color-primary-400: #4d7dff;--color-primary-500: #165dff;--color-primary-600: #0e42d2;--color-primary-700: #002e99;--color-aux-cyan-500: #14c9c9;--color-aux-green-500: #00b42a;--color-aux-purple-500: #722ed1;--color-aux-pink-500: #f5319d;--color-success-500: #00b42a;--color-success-200: #b7eb8f;--color-warning-500: #ff7d00;--color-warning-200: #ffd591;--color-danger-500: #f53f3f;--color-danger-600: #cb2634;--color-danger-200: #ffb1b1;--color-info-500: #4080ff;--color-info-200: #a8c8ff;--color-text-primary: #1d2129;--color-text-secondary: #4e5969;--color-text-tertiary: #86909c;--color-text-disabled: #c9cdd4;--color-fill-primary: #ffffff;--color-fill-secondary: #f2f3f5;--color-fill-tertiary: #e5e6eb;--color-fill-disabled: #f7f8fa;--color-border-regular: #c9cdd4;--color-border-disabled: #e5e6eb;--color-white: #ffffff;--color-mask-base: rgba(0, 0, 0, .3);--color-mask-drawer: rgba(0, 0, 0, .2);--spacing-2xs: 2px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 40px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--font-family-base: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;--font-family-mono: "SF Mono", "JetBrains Mono", "Roboto Mono", monospace;--font-size-sm: 12px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 32px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-title: 1.2;--line-height-body: 1.4;--line-height-number: 1.1;--duration-fast: .1s;--duration-base: .2s;--duration-slow: .3s;--ease-in-out: cubic-bezier(.4, 0, .2, 1);--shadow-xs: 0 1px 4px rgba(29, 33, 41, .06);--shadow-sm: 0 2px 8px rgba(29, 33, 41, .08);--shadow-md: 0 4px 16px rgba(29, 33, 41, .12);--shadow-lg: 0 8px 24px rgba(29, 33, 41, .18);--focus-ring-color: #165dff;--focus-ring-width: 2px;--focus-ring-offset: 2px}[data-theme=screen-dark]{--color-bg-screen: #0a0e1a;--color-bg-card: rgba(255, 255, 255, .04);--color-border-card: rgba(255, 255, 255, .08);--color-text-primary: #ffffff;--color-text-secondary: rgba(255, 255, 255, .7);--color-text-tertiary: rgba(255, 255, 255, .45);--color-primary-400: #4d7dff;--color-glow-primary: 0 0 20px rgba(77, 125, 255, .3);--color-primary-500: #4d7dff}*:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}body{margin:0;background:var(--color-fill-secondary);color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell{min-height:100vh}.logo{height:56px;display:flex;align-items:center;padding:0 var(--spacing-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-disabled)}.header{background:var(--color-fill-primary);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);border-bottom:1px solid var(--color-border-disabled);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-xl)}.content{padding:var(--spacing-xl)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--spacing-lg)}.metric{margin-top:var(--spacing-sm);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-number)}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-fill-secondary)}.login-card{width:360px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.login-title{margin-bottom:var(--spacing-xl);text-align:center}.login-error{margin-bottom:var(--spacing-lg)}.loading-wrap{min-height:240px;display:flex;align-items:center;justify-content:center}.ant-card{box-shadow:var(--shadow-xs)}.table-toolbar+.ant-table-wrapper{margin-top:var(--spacing-lg)}.ant-pagination{margin-top:var(--spacing-lg)}.form-row{display:flex;gap:var(--spacing-md)}.chart-rows{display:flex;flex-direction:column;gap:var(--spacing-sm)}.chart-row{display:flex;align-items:center;gap:var(--spacing-md)}.chart-label{width:96px;flex:0 0 96px;color:var(--color-text-secondary);font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-track{flex:1;background:var(--color-fill-secondary);border-radius:var(--radius-sm);height:12px;overflow:hidden}.chart-fill{height:100%;background:var(--color-primary-500);border-radius:var(--radius-sm);transition:width .3s ease}.chart-value{width:44px;flex:0 0 44px;text-align:right;color:var(--color-text-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.chart-bars{display:flex;align-items:flex-end;gap:var(--spacing-md);height:140px;padding-top:var(--spacing-sm)}.chart-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%}.chart-bar{width:60%;max-width:48px;background:var(--color-primary-500);border-radius:var(--radius-sm) var(--radius-sm) 0 0;min-height:2px;transition:height .3s ease}.chart-bar-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap}.chart-bar-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.dashboard-panels{display:flex;gap:var(--spacing-lg);flex-wrap:wrap}.dashboard-panels>.ant-card{flex:1 1 280px;min-width:280px}.admin-tabs-bar{background:var(--color-fill-primary);padding:var(--spacing-sm) var(--spacing-xl) 0;border-bottom:1px solid var(--color-border-disabled)}.admin-tabs-bar .ant-tabs-nav{margin-bottom:0}.admin-tabs-bar .ant-tabs-tab{border-radius:var(--radius-md) var(--radius-md) 0 0!important;background:var(--color-fill-disabled)!important;border:1px solid var(--color-border-disabled)!important;border-bottom:none!important}.admin-tabs-bar .ant-tabs-tab-active{background:var(--color-fill-primary)!important;border-color:var(--color-border-regular)!important}.admin-tab-label{color:var(--color-text-secondary)}.ant-tabs-tab-active .admin-tab-label{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.admin-page-root{padding:var(--spacing-xl);min-height:calc(100vh - 120px);min-width:0;overflow-x:hidden}.admin-page-root-screen{padding:0;background:transparent}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.page-header-main{min-width:0}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-title);margin:0}.page-desc{margin-top:var(--spacing-xs);color:var(--color-text-secondary);font-size:var(--font-size-base)}.page-header-actions{flex:0 0 auto;display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.stat-strip{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.stat-chip{flex:1 1 180px;background:var(--color-fill-primary);border:1px solid var(--color-border-disabled);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg)}.stat-chip-label{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.stat-chip-value{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-number)}.stat-chip-hint{color:var(--color-text-tertiary);font-size:var(--font-size-sm);margin-top:var(--spacing-2xs)}.stat-chip-clickable{cursor:pointer;transition:border-color var(--duration-base) var(--ease-in-out),box-shadow var(--duration-base) var(--ease-in-out),transform var(--duration-base) var(--ease-in-out)}.stat-chip-clickable:hover{border-color:var(--color-primary-400);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.filter-label{color:var(--color-text-secondary);font-size:var(--font-size-sm);white-space:nowrap}.table-actions{display:inline-flex;gap:var(--spacing-sm)}@media(max-width:900px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.page-error-boundary{padding:var(--spacing-xl)}.admin-page-root .ant-table-wrapper,.admin-page-root-screen .ant-table-wrapper{max-width:100%;overflow-x:auto}.admin-page-root .ant-table,.admin-page-rootScreen .ant-table{max-width:100%}.content{max-width:100%;overflow-x:hidden}.ant-card .ant-table-wrapper{overflow-x:auto}
