:root{--erp-primary: #165dff;--erp-primary-light: #4080ff;--erp-primary-dark: #0e42d2;--erp-primary-bg: #e8f1ff;--erp-success: #00b42a;--erp-success-bg: #e6fffb;--erp-warning: #ff7d00;--erp-warning-bg: #fff7e6;--erp-error: #f53f3f;--erp-error-bg: #fff1f0;--erp-sider-bg: #0d2a4d;--erp-sider-sub: #0a2138;--erp-header-h: 56px;--erp-page-bg: #f2f3f5;--erp-shadow-1: 0 2px 8px rgba(13, 42, 77, .06);--erp-shadow-2: 0 4px 16px rgba(13, 42, 77, .1);--erp-shadow-3: 0 8px 32px rgba(13, 42, 77, .14);--erp-shadow-header: 0 2px 8px rgba(13, 42, 77, .08);--erp-shadow-login: 0 16px 48px rgba(13, 42, 77, .35), 0 4px 12px rgba(13, 42, 77, .2);--erp-num-font: -apple-system, "SF Mono", "Helvetica Neue", "PingFang SC", "HarmonyOS Sans SC", Roboto, Consolas, monospace}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--erp-page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1d2129}.amount,.stat-value,.todo-count,.ant-statistic-content-value{font-family:var(--erp-num-font);font-variant-numeric:tabular-nums}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#0d2a4d,#17437c 55%,#165dff)}.login-bg-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:opacity .5s ease;z-index:0}.login-bg-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#0d2a4d59,#0d2a4d59);z-index:0}.home-banner{width:100%;height:140px;object-fit:cover;object-position:center;display:block}@media (max-width: 768px){.home-banner{height:96px}}.login-card{width:420px;background:#fff;border-radius:12px;padding:40px 40px 32px;box-shadow:var(--erp-shadow-login)}.login-logo{text-align:center;margin-bottom:8px}.login-logo .logo-icon{width:56px;height:56px;border-radius:12px;background:var(--erp-primary);color:#fff;font-size:26px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #165dff4d}.login-title{font-size:20px;font-weight:700;text-align:center;margin:12px 0 2px;color:#12263f}.login-sub{text-align:center;color:#8a97a8;font-size:12px;margin-bottom:24px}.login-tip{margin-top:16px;background:#f5f8ff;border-radius:8px;padding:10px 14px;color:#5b6b84;font-size:12px;line-height:1.8}.erp-sider{background:var(--erp-sider-bg)!important}.erp-sider .ant-layout-sider-children{display:flex;flex-direction:column}.erp-logo{color:#fff;padding:18px 20px 14px;display:flex;align-items:center;gap:10px}.erp-logo .logo-badge{width:38px;height:38px;border-radius:10px;background:var(--erp-primary);display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;flex:none;box-shadow:0 2px 8px #165dff4d}.erp-logo .logo-text{line-height:1.25;white-space:nowrap}.erp-logo .logo-text b{font-size:15px;display:block}.erp-logo .logo-text span{font-size:11px;color:#93a7c4}.erp-sider .ant-menu{background:transparent;border-right:none;flex:1;overflow-y:auto}.erp-sider .ant-menu-item-selected{background:var(--erp-primary)!important;border-radius:8px;margin:2px 8px!important;width:calc(100% - 16px)!important;box-shadow:0 4px 12px #165dff59}.erp-header{background:#fff!important;padding:0 24px!important;height:var(--erp-header-h)!important;line-height:var(--erp-header-h)!important;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--erp-shadow-header);position:relative;z-index:5}.erp-header .header-right{display:flex;align-items:center;gap:20px}.erp-content{padding:20px;overflow:auto}.page-card{margin-bottom:16px}.stat-card .ant-card-body{padding:20px 24px}.stat-inner{display:flex;align-items:center;gap:16px}.stat-icon{width:52px;height:52px;border-radius:14px;color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 4px 12px #00000014}.stat-meta{min-width:0}.stat-title{color:#86909c;font-size:13px;margin-bottom:4px;font-weight:500}.stat-value{font-size:26px;font-weight:700;color:#1d2129;line-height:1.2;white-space:nowrap}.stat-trend{font-size:12px;color:#86909c}.stat-trend .up{color:var(--erp-success);font-weight:500}.stat-trend .down{color:var(--erp-error);font-weight:500}.todo-item{display:flex;align-items:center;justify-content:space-between;padding:10px 6px;border-bottom:1px solid #f2f3f5;cursor:pointer;border-radius:6px;transition:background .15s ease}.todo-item:last-child{border-bottom:none}.todo-item:hover{background:#f5f8ff}.todo-item:hover .todo-label{color:var(--erp-primary)}.todo-label{display:flex;align-items:center;gap:10px;color:#1d2129;font-size:14px;font-weight:500}.todo-count{font-weight:700;border-radius:10px;padding:0 10px;font-size:15px;line-height:20px}.table-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px}.table-toolbar .toolbar-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.item-table .ant-table{background:#fafbfc}.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}@media (max-width: 1280px){.dash-grid{grid-template-columns:repeat(2,1fr)}}.dash-grid .ant-card{border-radius:12px;border:none;box-shadow:var(--erp-shadow-1);transition:box-shadow .2s ease,transform .2s ease}.dash-grid .ant-card:hover{box-shadow:var(--erp-shadow-2);transform:translateY(-2px)}.dash-charts{display:grid;grid-template-columns:4fr 3.2fr 2.4fr;gap:16px;margin-bottom:16px}@media (max-width: 1280px){.dash-charts{grid-template-columns:1fr}}.dash-charts .ant-card{border-radius:12px;border:none;box-shadow:var(--erp-shadow-1)}.dash-charts .ant-card .ant-card-head{border-bottom:none;font-weight:600;font-size:15px;color:#1d2129}.dash-todo-card{border-radius:12px;border:none;box-shadow:var(--erp-shadow-1)}.dash-todo-card .ant-card-head{border-bottom:none;font-weight:600;font-size:15px;color:#1d2129}.dash-todo-card .ant-card-body{padding-top:8px}.todo-dot{width:8px;height:8px;border-radius:50%;flex:none}.dash-todo-card .todo-item{padding:12px 8px}.dash-todo-card .todo-count{background:none;padding:0;font-size:15px;font-variant-numeric:tabular-nums}
