.sidebar-main { display: flex; flex-direction: column; height: 100%; background: linear-gradient(180deg, var(--pm-sidebar-grad-start) 0%, var(--pm-sidebar-grad-end) 100%); animation: pm-rise-in 0.4s var(--pm-ease-out); } .brand { padding: 18px 20px 8px; } .brand-link { display: inline-flex; align-items: center; gap: 8px; } .brand-logo-shell { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 42px; height: 30px; overflow: hidden; } .brand-logo-shell :deep(.brand-logo-frame) { width: 100%; height: 100%; } .brand-logo-shell :deep(.brand-logo) { mix-blend-mode: normal; } .brand-text { font-size: 19px; font-weight: 600; color: var(--pm-text-primary); letter-spacing: -0.02em; } .search-box { padding: 12px 18px 16px; } .custom-search :deep(.el-input__wrapper) { border-radius: 999px; background-color: var(--pm-surface-solid); } .custom-search :deep(.el-input__wrapper:hover) { background-color: var(--pm-bg-secondary); box-shadow: 0 0 0 1px var(--pm-border-color) inset; } .custom-search :deep(.el-input__wrapper.is-focus) { background-color: var(--pm-bg-secondary); box-shadow: 0 0 0 1px var(--pm-primary-color) inset; } .menu-container { flex-grow: 1; min-height: 0; overflow-y: auto; padding: 0 10px; } .sidebar-menu { border-right: none; background: transparent; } .sidebar-menu :deep(.el-menu-item) { height: 42px; line-height: 42px; border-radius: 999px; margin-bottom: 4px; color: var(--pm-text-secondary); font-weight: 500; transition: transform 0.2s var(--pm-ease-out), background-color 0.2s; } .sidebar-menu :deep(.el-menu-item:hover) { background-color: var(--pm-bg-hover); color: var(--pm-text-primary); transform: translateX(2px); } .sidebar-menu :deep(.el-menu-item.is-active) { background: linear-gradient(90deg, #eaf3ff 0%, #f2f7ff 100%); color: var(--pm-primary-color); font-weight: 600; } .menu-label { font-size: 14px; } .sidebar-footer { flex-shrink: 0; padding: 14px 16px 18px; border-top: 1px solid var(--pm-border-color); margin-top: auto; } .account-identity { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 8px; padding: 0 4px 12px; } .account-caption { grid-column: 1; color: var(--pm-text-secondary); font-size: 11px; line-height: 1.4; } .account-name { overflow: hidden; color: var(--pm-text-primary); font-size: 14px; font-weight: 600; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; } .account-role { justify-self: end; border-radius: 6px; font-size: 11px; } .logout-btn { display: inline-flex; align-items: center; justify-content: center; justify-self: end; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: var(--pm-text-secondary); font-size: 18px; cursor: pointer; } .logout-btn:hover:not(:disabled) { background: var(--el-color-danger-light-9); color: var(--el-color-danger); } .logout-btn:focus-visible { outline: 2px solid var(--pm-primary-color); outline-offset: 2px; } .logout-btn:disabled { opacity: 0.5; cursor: wait; } .settings-btn { display: flex; width: 100%; font-family: inherit; align-items: center; gap: 12px; padding: 12px 14px; font-size: 14px; font-weight: 500; color: var(--pm-text-secondary); border-radius: 14px; background: var(--pm-surface-glass); border: 1px solid var(--pm-border-color); cursor: pointer; transition: all 0.2s ease; } .settings-btn .el-icon { font-size: 18px; } .settings-btn:hover { background-color: var(--pm-bg-hover); color: var(--pm-text-primary); transform: translateY(-1px); } .settings-btn:focus-visible { outline: 2px solid var(--pm-primary-color); outline-offset: 2px; }