@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+JP:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap";
:root{--color-primary:#1890ff;--color-primary-hover:#40a9ff;--color-primary-active:#096dd9;--color-primary-bg:#e6f7ff;--color-primary-border:#91d5ff;--color-success:#52c41a;--color-success-bg:#f6ffed;--color-warning:#faad14;--color-warning-bg:#fffbe6;--color-error:#ff4d4f;--color-error-bg:#fff2f0;--color-info:#1890ff;--color-text-primary:#1f2329;--color-text-secondary:#646a73;--color-text-tertiary:#8f959e;--color-text-disabled:#bbbfc4;--color-text-white:#fff;--color-bg-page:#f5f6fa;--color-bg-container:#fff;--color-bg-hover:#f5f6fa;--color-bg-active:#e8e9eb;--color-bg-mask:#00000073;--color-border:#e9ecf2;--color-border-secondary:#f0f0f0;--color-divider:#e9ecf2;--color-nav-bg:#fff;--color-nav-item-hover:#f5f6fa;--color-nav-item-active:#e6f7ff;--color-nav-text:#646a73;--color-nav-text-active:#1890ff;--font-family-ja:"Noto Sans JP", "Hiragino Kaku Gothic Pro", sans-serif;--font-family-zh:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-family-en:"Inter", "Roboto", sans-serif;--font-family:var(--font-family-zh), var(--font-family-ja), var(--font-family-en);--font-size-xs:12px;--font-size-sm:13px;--font-size-base:14px;--font-size-lg:16px;--font-size-xl:20px;--font-size-xxl:24px;--font-size-title:28px;--line-height-base:1.5715;--line-height-lg:1.5;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-base:16px;--spacing-lg:20px;--spacing-xl:24px;--spacing-xxl:32px;--border-radius-sm:4px;--border-radius-base:6px;--border-radius-lg:8px;--border-radius-xl:12px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-base:0 2px 8px 0 #00000014;--shadow-lg:0 4px 16px 0 #0000001f;--shadow-xl:0 8px 24px 0 #00000029;--header-height:56px;--sidebar-width:240px;--sidebar-collapsed-width:64px;--transition-base:all .2s cubic-bezier(.645, .045, .355, 1);--transition-fast:all .15s ease;--transition-slow:all .3s cubic-bezier(.645, .045, .355, 1);--module-color-product:#1890ff;--module-color-bom:#722ed1;--module-color-inventory:#13c2c2;--module-color-warehouse:#52c41a;--module-color-sales:#fa8c16;--module-color-purchase:#eb2f96;--module-color-customer:#2f54eb;--module-color-finance:#faad14;--module-color-workflow:#f5222d;--module-color-settings:#8c8c8c}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);color:var(--color-text-primary);background-color:var(--color-bg-page);min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--color-text-disabled);border-radius:3px}::-webkit-scrollbar-thumb:hover{background-color:var(--color-text-tertiary)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.page-enter{opacity:0;transform:translateY(8px)}.page-enter-active{opacity:1;transition:opacity .3s,transform .3s;transform:translateY(0)}.ant-table-tbody>tr:hover>td{background-color:var(--color-bg-hover)!important}.ant-menu-item-selected{font-weight:500;background-color:var(--color-nav-item-active)!important;color:var(--color-primary)!important}.ant-btn{border-radius:var(--border-radius-base)}.ant-card{border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border-color:var(--color-border)}.ant-input,.ant-input-affix-wrapper,.ant-select-selector{border-radius:var(--border-radius-base)!important}.ant-modal-content{border-radius:var(--border-radius-xl)}.module-icon{border-radius:var(--border-radius-lg);color:#fff;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:inline-flex}.login-page{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";background:radial-gradient(circle,#ffffff1a 0%,#0000 50%);width:200%;height:200%;animation:30s linear infinite loginBgRotate;position:absolute;top:-50%;left:-50%}@keyframes loginBgRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-card{z-index:1;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-radius:16px;width:420px;padding:40px;position:relative;box-shadow:0 20px 60px #0000004d}.login-card .login-title{text-align:center;color:var(--color-text-primary);margin-bottom:8px;font-size:24px;font-weight:600}.login-card .login-subtitle{text-align:center;color:var(--color-text-tertiary);margin-bottom:32px;font-size:14px}.login-card .login-logo{text-align:center;margin-bottom:24px;font-size:48px}aside::-webkit-scrollbar{width:4px}aside::-webkit-scrollbar-thumb{background-color:#0000}aside:hover::-webkit-scrollbar-thumb{background-color:#ddd}main{transition:margin-left .2s}.dashboard-section{margin-bottom:24px}.dashboard-section .section-title{color:var(--color-text-primary);align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:600;display:flex}.stat-card{background:var(--color-bg-container);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:var(--transition-base);cursor:pointer;padding:20px}.stat-card:hover{box-shadow:var(--shadow-base);transform:translateY(-2px)}.app-card{background:var(--color-bg-container);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:var(--transition-base);cursor:pointer;align-items:center;gap:12px;padding:16px;display:flex}.app-card:hover{box-shadow:var(--shadow-base);border-color:var(--color-primary-border)}.app-card .app-icon{border-radius:var(--border-radius-lg);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.app-card .app-info{flex:1;min-width:0}.app-card .app-info .app-name{color:var(--color-text-primary);font-size:14px;font-weight:500}.app-card .app-info .app-desc{color:var(--color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}@media (max-width:768px){.login-card{width:90%;padding:24px}.main-layout .content-area{padding:16px}}
