.main-layout { min-height: 100vh; } .main-sider { background: var(--sider-bg) !important; display: flex; flex-direction: column; } .sidebar-header { padding: 24px 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); text-align: center; transition: padding 0.2s ease; } /* 折叠态收窄水平留白,与宽度动画同步 */ .ant-layout-sider-collapsed .sidebar-header { padding: 20px 8px; } .logo { position: relative; height: 31px; line-height: 31px; font-size: 22px; font-weight: 700; color: white; margin-bottom: 4px; } /* 全称与缩写叠加存放,折叠时交叉淡入淡出 */ .logo-full, .logo-short { display: block; white-space: nowrap; transition: opacity 0.2s ease, transform 0.2s ease; } .logo-short { position: absolute; inset: 0; opacity: 0; transform: scale(0.5); } .ant-layout-sider-collapsed .logo-full { opacity: 0; transform: scale(0.5); } .ant-layout-sider-collapsed .logo-short { opacity: 1; transform: scale(1); } /* 副标题折叠时渐隐并收起占位高度 */ .logo-subtitle { max-height: 18px; overflow: hidden; opacity: 1; font-size: 12px; color: rgba(255, 255, 255, 0.8); transition: opacity 0.2s ease, max-height 0.2s ease; } .ant-layout-sider-collapsed .logo-subtitle { max-height: 0; opacity: 0; } .main-header { background: white !important; padding: 0 24px !important; display: flex; align-items: center; justify-content: space-between; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); position: sticky; top: 0; z-index: 100; height: 50px; line-height: 1; } .header-left { display: flex; align-items: center; gap: 12px; } .collapse-trigger, .mobile-menu-trigger { font-size: 16px; cursor: pointer; color: #1f2937; border-radius: 4px; transition: background 0.2s; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0; } .collapse-trigger:hover, .mobile-menu-trigger:hover { background: #f9fafb; } .page-breadcrumb { font-size: 14px; line-height: 1; white-space: nowrap; } .page-breadcrumb .ant-breadcrumb-link { color: #1f2937; } .breadcrumb-crumb { display: inline-flex; align-items: center; gap: 6px; } .breadcrumb-crumb .anticon { font-size: 15px; } .page-breadcrumb .ant-breadcrumb-separator { color: #9ca3af; } .main-content { padding: 20px; background: #f3f4f6; min-height: calc(100vh - 50px); } @media (max-width: 768px) { .main-content { padding: 16px; } .main-header { padding: 0 16px !important; } }